maggg
Messages postés7Date d'inscriptionjeudi 1 mai 2008StatutMembreDernière intervention23 mai 2008
-
1 mai 2008 à 11:26
maggg
Messages postés7Date d'inscriptionjeudi 1 mai 2008StatutMembreDernière intervention23 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.
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 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
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 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
maggg
Messages postés7Date d'inscriptionjeudi 1 mai 2008StatutMembreDernière intervention23 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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 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