Je débute en VBA et je ne trouve pas le code VBA qui pourrait me convenir sur le forum.
Je cherche à supprimer une ligne entière quand le contenu de la colonne B est égal à « 05 Total ». Cela peut aussi être « 01 Total » ou encore « 12 Total » … En fait dès que le mot Total est dans une cellule de la colonne B j’aimerai supprimer la ligne mais je ne trouve pas comment faire.
Je souhaite également, toujours via une macro renseigner les onglets site_A, site_B et site_C avec le contenu pour chaque site (les données avec « A » et « A Total » dans la colonne C de l’onglet Sheet1 dans l’onglet site_A).
Voici le fichier : Test.xlsx (18,4 Ko)
Aucun traitement ne pourra fonctionner dans un contexte instable
La structure ne doit pas être modifiée donc tes noms d’onglet en faisant parti ne doivent surtout pas bougé
Pourquoi ce changement de nom ???
Ne peut pas les laisser en l’état ???
Le contexte ne varie pas. J’ai juste modifié le nom des sites. Les sites A,B et C étaient pour l’exemple mais le site A correspond véritablement à Lille, le site B à Lyon et le site C à Paris…
Je pensais simplifier la démarche en mettant A,B et C…
Comment un traitement peut il déterminer le nom d’un onglet à alimenter sur la base d’une cellule qu’il scrute colonne C qui ne le porte le pas
Mission impossible
Dans ton fichier pour une valeur A le traitement doit alimenter l’onglet « SITE_A »
A par l’écrire en dur dans le code donc de figer la structure quelle solution tu me proposes ?
Il faut mettre dans les cellules colonne C le nom exacte de l’onglet à alimenter pour ne pas rigidifier la structure
Sinon mission impossible
A moins que tu mettes l’information nécessaire dans 2 colonnes l’une portant la valeur de la cellule colonne C l’autre l’onglet de destination
Sub Traitement()
'
' Traitement Macro
'
lignesuppression = ""
i = 7
Do While i < Range("B" & Rows.Count).End(xlUp).Row + 1
If UCase(Range("B" & i)) Like "*TOTAL*" Then
lignesuppression = lignesuppression & i & "/"
Else
If Range("C" & i).Text = Sheets(2).Name Then
onglet = 2
End If
If Range("C" & i).Text = Sheets(3).Name Then
onglet = 3
End If
If Range("C" & i).Text = Sheets(4).Name Then
onglet = 4
End If
.../...
Voici le vrai fichier avec les vrais lieux de livraison. Ils ne varient jamais. Nous avons donc Lille, Lyon et Paris. J’ai corrigé les sites A,B et C mais la macro n’a pas fonctionnée…
Pas mal comme astuce
Maintenant en espérant que les noms des onglets soit ceux dans la colonne C car si c est comme le tout premier fichier pour une valeur C « A » l onglet en rapport était « SITE_A »
impossible dans ce contexte de faire le lien entre la cellule et les onglets
Il faut bien ficeler cet aspect avant d opter pour une méthode
Merci beaucoup à toi pour ton aide
FFO,
Ce que je ne comprends pas c’est que je viens seulement remplacer le site A par le nom d’une ville et idem pour les site B et C. Le nom des onglets change aussi.
Dans le 1er fichier envoyé j’avais :
En colonne C : A; B; C
Les onglets étaient : SITE_A; SITE_B; SITE_C
Je veux la même chose avec :
En colonne C : Lille, Lyon, Paris
Les onglets sont : CallOff_Lille; CallOff_Lyon, CallOff_Paris