Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
813 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Macro supprimer une colonne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Macro supprimer une colonne

n°1434963
le_bat75
Posté le 01-09-2006 à 11:27:13  profilanswer
 

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 cité 1 fois
Message édité par le_bat75 le 01-09-2006 à 16:32:19
mood
Publicité
Posté le 01-09-2006 à 11:27:13  profilanswer
 

n°1435032
acrosomia
Posté le 01-09-2006 à 12:05:09  profilanswer
 

le_bat75 a écrit :

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


 
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

Message cité 1 fois
Message édité par acrosomia le 01-09-2006 à 12:05:49
n°1435034
le_bat75
Posté le 01-09-2006 à 12:06:46  profilanswer
 

Ok super je vais essayer. Merci bien

n°1435035
pyrof
Posté le 01-09-2006 à 12:08:22  profilanswer
 

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
 

n°1435207
le_bat75
Posté le 01-09-2006 à 15:52:33  profilanswer
 

acrosomia a écrit :


Columns("C:C" ).Delete Shift:=xlToLeft  


 
Cellle pr 1 colonne marche très bien
 
Par contre l'autre :  
 

acrosomia a écrit :


Columns("C:E,G:G" ).Delete


 
Ne fonctionne pas. J'ai un message : Erreur d'execution, Incompatibilité de type
 
Bizzare
 

n°1435225
pyrof
Posté le 01-09-2006 à 16:03:54  profilanswer
 

Fait attention
 
si tu detruis c à e la colonne g devient d
 
il faut commencer par détruire les colonnes les plus à droite

n°1435231
acrosomia
Posté le 01-09-2006 à 16:08:56  profilanswer
 

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.
 
 
 

n°1435234
le_bat75
Posté le 01-09-2006 à 16:10:57  profilanswer
 

acrosomia a écrit :

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.


 
Oui Effectivement ça fonctionne mieux comme ça :) Merci à tous pour votre aide.

n°1435244
acrosomia
Posté le 01-09-2006 à 16:17:32  profilanswer
 

pyrof a écrit :

Fait attention
 
si tu detruis c à e la colonne g devient d
 
il faut commencer par détruire les colonnes les plus à droite


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


Message édité par acrosomia le 01-09-2006 à 16:18:54
n°1435249
acrosomia
Posté le 01-09-2006 à 16:19:57  profilanswer
 

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!  :D  

mood
Publicité
Posté le 01-09-2006 à 16:19:57  profilanswer
 

n°1652590
stanymi
Posté le 04-12-2007 à 11:19:17  profilanswer
 

Tout à fait ce que je cherchais.  
Merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Macro supprimer une colonne

 

Sujets relatifs
[RESOLU] Flash : Alignement en 1er plan d'une animation[Delphi] problème MDI + Base de données + ListBox [Résolu]
[Resolu][DataGridView] Action quand on change la valeur d'une CheckBox[resolu][C# => Excel] : tableau à partir d'une appli windows en C#
[batch] [RESOLU] Enlever les " d'un fichier[RESOLU] formulaire html multiples
array : supprimer une valeur dans un array[RESOLU] forcer le telechargement
Récupérer les données dans une autre page [Résolu][Résolu] Récupérer nom COMPLET (Display name) de l'utilisateur actif
Plus de sujets relatifs à : [Résolu] Macro supprimer une colonne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR