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
A voir également:
- Macro excel valeur dépendant de deux conditio
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Nombre de jours entre deux dates excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
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
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 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
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
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????
Bonne journée
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....
Bonne journée
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
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
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
Il y a juste une petite erreur, il faut commencer à 1 et non pas à 0 ici :
For ligne = 1 To 63000
A+