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   | 
 
 
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