[vba excel]copier une colonne en fonction d'une cellule

LABUCHE

XLDnaute Junior
bonsoir
je tente de copier une colonne en fonction d'une valeur d'une cellule qui peut se trouver dans une plage definit

voici mon code pour identifier ma cellule recherchee
Code:
sub cinq()
Dim celle As Range

For Each celle In Range("e4:ai4")
If celle.Value = 5 And celle.Value <> "" Then
celle.select
End If
Next
End Sub
maintenant j'aimerai copier la colonne entiere contenant la cellule ( celle.value=5) mais je n'arrive à definir la colonne....:(
 

skoobi

XLDnaute Barbatruc
Re : [vba excel]copier une colonne en fonction d'une cellule

Bonsoir,

une remarque concernant la condition:

If celle.Value = 5 And celle.Value <> ""

si celle vaut 5 forcément elle ne sera pas vide:rolleyes:.
Donc tu peux supprimer la deuxième vérification à moins que tu veuilles dire Ou: "Or" ;).

Sinon, pour récupérer la colonne:

Code:
sub cinq()
Dim celle As Range

For Each celle In Range("e4:ai4")
If celle.Value = 5 And celle.Value <> "" Then
[COLOR=Blue][B]celle.EntireColumn.Copy 'ici tu écris la cellule de destination[/B][/COLOR]
celle.select
End If
Next
End Sub

Edit: Au fait, prend tout de suite l'habitude d'éviter les ".Select", inutile dans VBA et ralentie la macro ;).
 

LABUCHE

XLDnaute Junior
Re : [vba excel]copier une colonne en fonction d'une cellule

Bonsoir,

une remarque concernant la condition:

If celle.Value = 5 And celle.Value <> ""

si celle vaut 5 forcément elle ne sera pas vide:rolleyes:.
Donc tu peux supprimer la deuxième vérification à moins que tu veuilles dire Ou: "Or" ;).

Sinon, pour récupérer la colonne:

Code:
sub cinq()
Dim celle As Range

For Each celle In Range("e4:ai4")
If celle.Value = 5 And celle.Value <> "" Then
[COLOR=Blue][B]celle.EntireColumn.Copy 'ici tu écris la cellule de destination[/B][/COLOR]
celle.select
End If
Next
End Sub

Edit: Au fait, prend tout de suite l'habitude d'éviter les ".Select", inutile dans VBA et ralentie la macro ;).

merci skoobi
je vais suivre tes conseils pour
les ".Select"

en fait j'aimerai coller la colonne qui contient la valeur 5 dans la colonne E
lorsque j applique ton code j'ai une erreur 1024 probleme de format entre cellule copier et cellule collees

peux encore une fois m'aider ....

j'ai supprimé le
Code:
And celle.Value <> ""
;)
 

LABUCHE

XLDnaute Junior
Re : [vba excel]copier une colonne en fonction d'une cellule

oula la lala la le temps que j'essais un nouveau code skoobi me propose une autre reponse eclaire et qui marche aussi :D

trop fort skoobi
je te remercie pour ton aide précisieuse et ta grande rapidité ;) you are the best !!!
ton code
Code:
celle.EntireColumn.Copy Columns("E:E")
est trop fort
@+
 

LABUCHE

XLDnaute Junior
Re : [vba excel]copier une colonne en fonction d'une cellule

bonjour skoobi
j'ai encore une petite question ....

a chaque fois que je lance la super macro il me demande de confirmer le collage par une fenetre de dialogue
comment confirmer automatiquement ?:confused:
 

mutzik

XLDnaute Barbatruc
Re : [vba excel]copier une colonne en fonction d'une cellule

bonjour Labuche, Skoobi, le fort homme

avant de copier la nouvelle colonne (par exemple AB) dans la colonne E, il vaudrait mieux faire un effacement complet de ladite colonne E
car si avant le collage en cours il y avait + de lignes de données que maintenant, les valeurs qui depassent vont rester et éventuellement fausser des calculs
le mieux dans ce cas serait de coller toute la colonne (AB dans mon exemple) par dessus la colonne E, cela éviterait ce genre de prob
 

skoobi

XLDnaute Barbatruc
Re : [vba excel]copier une colonne en fonction d'une cellule

Re,
bonjour mutzik,

comme le dit mutzik, efface d'abord ce qui se trouve dans la colonne E:

Columns("E:E").Clear

ou

Columns("E:E").ClearContents

Je te laisse découvrir la différence entre ces 2 lignes.
 

LABUCHE

XLDnaute Junior
Re : [vba excel]copier une colonne en fonction d'une cellule

Bonjour skoobi et mutzik ,Bertrand
je peux pas effacer avant la colonne E car des fois la valeur cinq se trouve dans la colonne E :confused:.....

j'ai testé clear en fait
Code:
Columns("E:E").Clear  efface tous : les bordures et frames 
Columns("E:E").ClearContents efface uniquement les données
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 086
Messages
2 085 197
Membres
102 814
dernier inscrit
JLGalley