Macro excel valeur dépendant de deux conditio
Qorcin
-
bacus13 Messages postés 30 Statut Membre -
bacus13 Messages postés 30 Statut Membre -
Bonjour,
voila mon probleme,
je souhaiterai faire une macro VB permettant de selectionner une cellule dependant de deux conditions.
Par exemple une valeur de la colonne A (par exemple valeur 7) et la valeur associer dans la colonne B (dans ce cas le nombre "2") et copier la valeur de la colonne C associer (dans ce cas "1272550" ) sur une autre feuille?
Sample# Cycle # Time
1 1 1271650
2 1 1271800
3 1 1271950
4 1 1272100
5 1 1272250
6 2 1272450
7 2 1272550
8 2 1272700
9 2 1272900
Merci de vos réponses
voila mon probleme,
je souhaiterai faire une macro VB permettant de selectionner une cellule dependant de deux conditions.
Par exemple une valeur de la colonne A (par exemple valeur 7) et la valeur associer dans la colonne B (dans ce cas le nombre "2") et copier la valeur de la colonne C associer (dans ce cas "1272550" ) sur une autre feuille?
Sample# Cycle # Time
1 1 1271650
2 1 1271800
3 1 1271950
4 1 1272100
5 1 1272250
6 2 1272450
7 2 1272550
8 2 1272700
9 2 1272900
Merci de vos réponses
6 réponses
-
Tout simplement avec des if :
For ligne = 0 to ....
If Range("A" & ligne).value = 7 And Range("B" & ligne).Value = 2 then
Range("C" & ligne).Copy
Sheets(..).Range(..).Select
ActiveSheet.Paste
End if
...
Next ligne-
Merci pour votre réponse, mais voici la macro tel que vous me l'avez suggéréé :
Sub suppr()
For ligne = 0 To 63000
If Range("A" & ligne).Value = 7 And Range("C" & ligne).Value = 2 Then
Range("D" & ligne).Copy
Sheets(2).Range("A1").Select
ActiveSheet.Paste
End If
Next ligne
End Sub
et ca me mets error method range of object'_global failed?? pouvez vous m expliquer pourquoi?
desolé je suis novice -
-
-
-
merci pilas!
mais mintenant j'ai une erreur au niveau de la ligne 5 (methode select range a échoué)?????
Sub suppr()
For ligne = 1 To 63000
If Range("A" & ligne).Value = 7 And Range("C" & ligne).Value = 2 Then
Range("D" & ligne).Copy
Sheets(2).Range("A1").Select
ActiveSheet.Paste
End If
Next ligne
End Sub -
Sub suppr()
Dim ligne as long
With Sheets(1)
For ligne = 1 To 63000
If .Range("A" & ligne).Value = 7 And .Range("C" & ligne).Value = 2 Then
.Range("D" & ligne).Copy
Sheets(2).Select
Range("A1").Select
ActiveSheet.Paste
End If
Next ligne
End With
End Sub -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Hiiiiiiiiii
Pourquoi continuer la boucle jusqu'à 63000.......??????
Euh, une méthode Find, plus FindNext????
Sub qorcin() Dim FirstAddress As String Dim C As Range With Sheets("Feuil1").Columns(1) Set C = .Find(7, LookIn:=xlValues, LookAt:=xlWhole) If Not C Is Nothing Then FirstAddress = C.Address Do If C.Offset(, 1).Value = 2 Then C.Offset(, 2).Copy Sheets("Feuil2").Range("A1") Exit Do End If Set C = .FindNext(C) Loop While Not C Is Nothing And C.Address <> FirstAddress End If End With End Sub
Bonne journée -
Re-,
Effectivement, mais tu devrais sortir de la boucle, dès que tu as tes conditions de remplies...
Et également, évite les Select, cela fait gagner du temps....
Sub suppr() Dim ligne as long With Sheets(1) For ligne = 1 To [A65000].End(xlUp).Row If .Range("A" & ligne).Value = 7 And .Range("C" & ligne).Value = 2 Then .Range("D" & ligne).Copy Sheets(2).Range("A1") Exit For End If Next ligne End With End Sub
Bonne journée-
au départ, je pensais qu'il voulait faire la copie pour toutes les lignes contenant...
Mais c'est vrai que s'il y a une seule cellule, il faut sortir de la boucle.
Je ne connaissais pas cette syntaxe pour le .Copy ! ^^
ou sinon on peut aussi faire (si il n'y a que la valeur qui nous interresse) :
Sheets(2).Range("A1").Value = .Range("D" & ligne).Value
-