Excel: macro if
Résolu
ath80
Messages postés
234
Statut
Membre
-
ath80 Messages postés 234 Statut Membre -
ath80 Messages postés 234 Statut Membre -
Bonjour,
Sous excel, je voudrais réaliser une macro avec une condition SI.
http://cjoint.com/12fe/BBBrwbLiFeh.htm
Si dans Feuil1 la case B3 est égale à s1, je copie les valeurs de la plage D4 à D472 et les colle dans Feuil2 dans la plage B3 à B471.
Ensuite, SI dans Feuil1 la case B3 est égale à s2, je copie la plage de la même façon dans Feuil2 dans la plage C3 à C471. Pour finir si c'est s3 dans B3, je la copie dans la plage D3 à D471.
Si il y a s1 dans la case, c'est cette action qui sera effectuée lorsque l'on appuie sur le bouton OK.
Range("D4:D472").Select
Selection.Copy
Sheets("Feuil2").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select
Mais je n'arrive pas à le mettre en place avec IF.
Sinon si c'est s2, ce sera ceci:
Range("D4:D472").Select
Selection.Copy
Sheets("Feuil2").Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select
Si c'est s3, ce sera ceci:
Range("D4:D472").Select
Selection.Copy
Sheets("Feuil2").Select
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select
Voyez vous ce que je veux dire ?
Merci de votre aide.
Sous excel, je voudrais réaliser une macro avec une condition SI.
http://cjoint.com/12fe/BBBrwbLiFeh.htm
Si dans Feuil1 la case B3 est égale à s1, je copie les valeurs de la plage D4 à D472 et les colle dans Feuil2 dans la plage B3 à B471.
Ensuite, SI dans Feuil1 la case B3 est égale à s2, je copie la plage de la même façon dans Feuil2 dans la plage C3 à C471. Pour finir si c'est s3 dans B3, je la copie dans la plage D3 à D471.
Si il y a s1 dans la case, c'est cette action qui sera effectuée lorsque l'on appuie sur le bouton OK.
Range("D4:D472").Select
Selection.Copy
Sheets("Feuil2").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select
Mais je n'arrive pas à le mettre en place avec IF.
Sinon si c'est s2, ce sera ceci:
Range("D4:D472").Select
Selection.Copy
Sheets("Feuil2").Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select
Si c'est s3, ce sera ceci:
Range("D4:D472").Select
Selection.Copy
Sheets("Feuil2").Select
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select
Voyez vous ce que je veux dire ?
Merci de votre aide.
A voir également:
- Excel: macro if
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel trier par ordre croissant chiffre - Guide
4 réponses
Bonjour,
il y a un autre moyen que le IF THEN : passer par le Select Case.
J'essaie de vous simplifier votre macro au passage avec cette instruction. Je vous fais ça ce soir.
Cordialement.
il y a un autre moyen que le IF THEN : passer par le Select Case.
J'essaie de vous simplifier votre macro au passage avec cette instruction. Je vous fais ça ce soir.
Cordialement.
Salut,
teste ce code
Sub Macro1()
[D4:D472].Copy
Select Case [B3].Value
Case Is = "s1"
Sheets("Feuil2").Select
[B3].PasteSpecial Paste:=xlPasteValues
Case Is = "s2"
Sheets("Feuil2").Select
[C3].PasteSpecial Paste:=xlPasteValues
Case Is = "s3"
Sheets("Feuil2").Select
[D3].PasteSpecial Paste:=xlPasteValues
End Select
Application.CutCopyMode = False
Sheets("Feuil1").Select
Range("A1").Select
End Sub
Sur la feuil2, si tu nommes les cellules B3, C3 et D3 exemple B_3, C_3 et D3 le code peut être simplifié
Sub Macro1()
[D4:D472].Copy
Select Case [B3].Value
Case Is = "s1"
[B_3].PasteSpecial Paste:=xlPasteValues
Case Is = "s2"
[C_3].PasteSpecial Paste:=xlPasteValues
Case Is = "s3"
[D_3].PasteSpecial Paste:=xlPasteValues
End Select
Application.CutCopyMode = False
Sheets("Feuil1").Select
Range("A1").Select
End Sub
teste ce code
Sub Macro1()
[D4:D472].Copy
Select Case [B3].Value
Case Is = "s1"
Sheets("Feuil2").Select
[B3].PasteSpecial Paste:=xlPasteValues
Case Is = "s2"
Sheets("Feuil2").Select
[C3].PasteSpecial Paste:=xlPasteValues
Case Is = "s3"
Sheets("Feuil2").Select
[D3].PasteSpecial Paste:=xlPasteValues
End Select
Application.CutCopyMode = False
Sheets("Feuil1").Select
Range("A1").Select
End Sub
Sur la feuil2, si tu nommes les cellules B3, C3 et D3 exemple B_3, C_3 et D3 le code peut être simplifié
Sub Macro1()
[D4:D472].Copy
Select Case [B3].Value
Case Is = "s1"
[B_3].PasteSpecial Paste:=xlPasteValues
Case Is = "s2"
[C_3].PasteSpecial Paste:=xlPasteValues
Case Is = "s3"
[D_3].PasteSpecial Paste:=xlPasteValues
End Select
Application.CutCopyMode = False
Sheets("Feuil1").Select
Range("A1").Select
End Sub