Supprimer colonne sous condition

Résolu
maggg Messages postés 7 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 23 mai 2008 - 1 mai 2008 à 11:26
maggg Messages postés 7 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 23 mai 2008 - 2 mai 2008 à 10:33
Bonjour à tous,

J'ai un tableau en excel 2003 dans lequel je dois supprimer des lignes et des colonnes sous certaines conditions.
Au niveau des lignes, pas de souci, j'ai trouvé la solution.
Par contre pour les colonnes, je suis coincée.
Si le titre d'une ou plusieurs colonnes contient le mot "provisoire", je désire supprimer la colonne correspondante.

Merci d'avance pour votre aide

maggg

7 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
1 mai 2008 à 12:45
dnas la mesure où ce mot est dans la premiere ligne sinon dans le if cells(1,i) deviendra if cells(x,i) x étant le numéro de la ligne

for i = 1 to 50    ' recherche dans les 50 premieres colonnes
    if cells(1,i)= "provisoire" then      'si la cellule contiend ce que tu recherche
        Columns(i).Delete Shift:=xlToLeft     'supprime la colonne
       exit for       'et sort de la boucle
    end if
next i
quand à ton code tu dois pouvoir le remplacer  par
Sub SuppressionLigne()
    Application.ScreenUpdating = False
    For i = Range("a65536").End(xlUp).Row To 1 Step -1
        If Cells(i, 1) ="*etat*" Then
             rows (i).Delete Shift:=xlUp
            exit for
        end if
    Next i
End Sub

dernier petit truc pour faciliter la lecture de ton code (et uniquement pour ça) pense à indenter tes lignes comme je l'ai fait
c'est bien plus facile pour voir si tu n'as pas oublié un next ou un end if en cours de route

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
3
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
1 mai 2008 à 11:48
bonjour
si tu sais supprimer une ligne je ne vois pas où est le probleme pour supprimer une colonne lol
à la place de Rows tu mets Columns et le tour est joué
de plus quand tu as un probleme comme ceci la solution simple c'est de passer par l'enregistreur de macro qui va t'écrire directement le code correspondant aux actions que tu feras dans ta feuille. c'est commode pour retrouver rapidement une syntaxe

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
maggg Messages postés 7 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 23 mai 2008
1 mai 2008 à 12:25
Bonjour pile_poil

Merci pour ta réponse.
Je suis à mes débuts en visual basic, cela se voit

Le fichier dans lequel je travaille vient d'une banque de données du boulot.
Le mot "provisoire" ne se trouvera pas toujours dans les mêmes colonnes.
J'ai donc besoin que la macro fasse la recherche pour moi.

Voici ce que j'ai trouvé pour les lignes :

Sub SuppressionLigne()
Application.ScreenUpdating = False
For i = Range("a65536").End(xlUp).Row To 1 Step -1
If Cells(i, 1) Like "*etat*" Then Cells(i, 1).ClearContents
Next
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Donc changer Rows par Columns ne fonctionne pas.

J'espère être claire, parce que c'est encore un peu chinois pour moi

Merci d'avance pour ton aide

maggg
0
maggg Messages postés 7 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 23 mai 2008
1 mai 2008 à 13:09
Un tout grand merci pour ton aide et tes conseils.
Cela fonctionne

maggg
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
1 mai 2008 à 13:14
pas de probleme  bon week end à raloonge !

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
1 mai 2008 à 23:18
Tu dis
Si le titre d'une ou plusieurs colonnes contient le mot "provisoire"

Il faut savoir si le mot "provisoire" est toujours écrit en minuscule, si la cellule contient seulement "provisoire" ou peut contenir d'autres mots en plus,...

Si c'est le cas, la démarche peut différer un peu.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
maggg Messages postés 7 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 23 mai 2008
2 mai 2008 à 10:33
Bonjour MPi,

Oui, en effet.
Etant donné qu'il y a d'autres mots dans la cellule, j'ai adapté avec LIKE et cela fonctionne parfaitement.

Merci

maggg
0
Rejoignez-nous