Macro supprimer une colonne [Résolu] - VB/VBA/VBS - Programmation
Marsh Posté le 01-09-2006 à 12:05:09
le_bat75 a écrit : bonjour, |
salut
tu utilises la propriété "delete" de l'objet "range".
par exemple tu veux effacer la colonne C uniquement:
Columns("C:C" ).Delete Shift:=xlToLeft
le shift te permet de spécifier comment tu veux décaler les cellules qui vont remplacer les cellules effacées: xlShiftToLeft (colonnes) ou xlShiftUp (lignes).
Si tu veux effacer les colonnes C à E, tu fais:
Columns("C:E" ).Delete Shift:=xlToLeft
si tu veux effacer les colonnes C à E et la G, tu fais:
Columns("C:E,G:G" ).Delete
Si c'est les lignes 9 à 13, tu remplaces par:
Rows("9:13" ).Delete Shift:=xlUp
Marsh Posté le 01-09-2006 à 12:08:22
Bonjour,
Voici 2 macros
Sub Macro1()
Selection.Delete Shift:=xlToLeft
End Sub
Sub Macro2()
x = InputBox("Numero de la colonne" )
Columns(Val(x)).Delete Shift:=xlToLeft
End Sub
La première supprime la colonne qui contient la cellule active
La seconde demande le numero de la colonne
Marsh Posté le 01-09-2006 à 15:52:33
acrosomia a écrit : |
Cellle pr 1 colonne marche très bien
Par contre l'autre :
acrosomia a écrit : |
Ne fonctionne pas. J'ai un message : Erreur d'execution, Incompatibilité de type
Bizzare
Marsh Posté le 01-09-2006 à 16:03:54
Fait attention
si tu detruis c à e la colonne g devient d
il faut commencer par détruire les colonnes les plus à droite
Marsh Posté le 01-09-2006 à 16:08:56
OK je vois le pbm. A la place de "columns", tu mets "range":
Range("C:E,G:G" ).Delete
et normalement il n'y a pas de pbm.
Marsh Posté le 01-09-2006 à 16:10:57
acrosomia a écrit : OK je vois le pbm. A la place de "columns", tu mets "range": |
Oui Effectivement ça fonctionne mieux comme ça Merci à tous pour votre aide.
Marsh Posté le 01-09-2006 à 16:17:32
pyrof a écrit : Fait attention |
pas forcément, tu peux détruire tt d'un coup mais en fais il faut faire un "activate" par ex sur la 1ere cellule de la dernière colonne à effacer mm si son label est inférieur à des labels supérieurs de colonnes à effacer.
Range("B:D,F:F" ).Select
Range("F1" ).Activate
Selection.Delete Shift:=xlToLeft
ou
Range("B:D,A:A" ).Select
Range("A1" ).Activate
Selection.Delete Shift:=xlToLeft
en gros avec columns, il faut donner un point d'activation après effacement...
Marsh Posté le 01-09-2006 à 16:19:57
le_bat75 a écrit : Oui Effectivement ça fonctionne mieux comme ça Merci à tous pour votre aide. |
un petit [résolu] en entête et hop!
Marsh Posté le 01-09-2006 à 11:27:13
bonjour,
Je cherche une macro qui supprime une colonne à partir de son nom:
Exemple. J'ai un fichier excel avec les colonnes A,B,C,D,E et F
Comment faire pour supprimer C et d par exemple ?
Vous allez me dire que je peux le faire à la main, mais c beaucoup plu scompliqué que ça car en fait j'ai au moins une centaine de colonne et j'enlève toujours les mêmes colonne donc je voudrai automatiser tt ça.
Merci
Message édité par le_bat75 le 01-09-2006 à 16:32:19