Supprimer une ligne en fonction de la valeur d'une cellule

Bonjour,

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)

Pouvez vous m’aider ?

Bien cordialement,

Bonjour

Ma proposition ci-jointe

Cliques sur le bouton « Traitement »

Vérifies le résultat obtenu dans les onglets

Attention fichier de type xlsm à garder pour le traitement en VBA

Testes et dis moi

Test.xlsm (29,6 Ko)

Bonjour FFO,

Je te remercie pour ton retour.

La macro fonctionne parfaitement bien sauf quand je modifie le nom du site…
Si mon site A correspond à Lille, mon site B à Lyon et mon site C à Paris.

Je modifie le nom des trois onglets et les valeurs dans Sheet1 mais la macro ne fonctionne pas…

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

A toi de voire et me dire

Bonjour,

Modifie comme ceci le debut de la macro

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

.../...

Merci pour ton retour.

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…

Test.xlsx (18,4 Ko)

Bonjour Mimimathy,

Si je modifie le début la fin ne fonctionne plus :

Re,
Reprends mon bout de macro et recolle le
et d’autres part, ton VRAI fichier est identique au premier (A, B & C)

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

Test avec noms des villes.xlsx (18,4 Ko)

Il faut la correspondance entre la ville colonne C et le nom de l’onglet

Premier fichier :

A correspondance SITE_A

Avec ce 2° fichier

Lille correspondance CallOff_Lille

Soit cette correspondance est à réaliser dans 2 colonnes

sur la même ligne
1° colonne Lille
correspondance
2° colonne CallOff_Lille
sur les lignes suivantes les autres correspondances

pour que le traitement en fonction de la donnée cellule C sache quelle est l’onglet à enrichir

L’avantage des colonnes c’est à la main de l’utilisateur

Sinon c’est en dur dans le code mais aucune possibilité d’évolution dans ces correspondances si ce n’est d’intervenir dans le code

Je te propose donc l’option colonnes
La première les noms colonne C
La deuxième les onglets qui faut utiliser pour chacun

A ta disposition pour plus de précisions si besoin

Re,
A tester
Test avec noms des villes.xlsm (26,2 Ko)

Bonjour,

Merci pour toutes vos solutions. Cela fonctionne parfaitement.
Bonne journée,

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.