Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

condition dans une macro

2 réponses
Avatar
ptck
bonsoir
j'ai ce bout de code qui recopie des cellules situées entre deux 2 lignes,
dans la 1ère ligne le Mot B
dans la 2ème ligne le Mot C.
Cependant je voudrai utiliser cette macro pour des classeurs ou le mot C est
"cuisson" et d'autres
ou mot D est "préparation", mais je n'arrive pas à faire le condition.

si vous pouvez me donner un coup de main...
Merci de votre aide

S2.Activate
On Error Resume Next
lgn3 = S2.Columns("A:G").Find(What:=motB, MatchCase:=True).Row + 2

'ici on cherche soit le mot C ou D
mottrouv = S2.Columns("A:G").Find(What:=motD, lookat:=xlWhole,
MatchCase:=True)
If mottrouv = motD Then lgn4 = S2.Columns("A:G").Find(What:=mottrouv,
lookat:=xlWhole, MatchCase:=True).Row - 1
End If

mottrouv = S2.Columns("A:G").Find(What:=motC, lookat:=xlWhole,
MatchCase:=True)
If mottrouv = motC Then lgn4 =
S2.Columns("A:G").Find(What:=mottrouv, lookat:=xlWhole,
MatchCase:=True).Row - 1
' si aucun des mots n'est trouvé
If Err <> 0 Then
S1.Activate
S1.[a1].Select
MsgBox motC & " non trouvé dans l'onglet" & S2.Name
Exit Sub
Else
S2.Range(Cells(lgn3, 2), Cells(lgn4, 4)).Copy
End If

S1.Activate
S1.Range("B65536").End(xlUp).Offset(1).PasteSpecial
Paste:=xlPasteValues
Application.CutCopyMode = False

2 réponses

Avatar
FFO
Salut à toi
Je ne sais pas si j'ai bien tout compris dans ta macro mais il me semble que
je changerais les variables :

motD par "préparation"
motC par "cuisson"

ainsi :

mottrouv = S2.Columns("A:G").Find(What:="préparation", lookat:=xlWhole,
MatchCase:=True)
If mottrouv = "préparation" Then lgn4 =
S2.Columns("A:G").Find(What:=mottrouv,
lookat:=xlWhole, MatchCase:=True).Row - 1
End If

mottrouv = S2.Columns("A:G").Find(What:="cuisson", lookat:=xlWhole,
MatchCase:=True)
If mottrouv = "cuisson" Then lgn4 =
S2.Columns("A:G").Find(What:=mottrouv, lookat:=xlWhole,
MatchCase:=True).Row - 1

Celà devrait convenir

Dis moi !!!!
Avatar
ptck
bonjour,

J'ai trouvé je teste si c'est vrai je vais à motok
sinon je reteste si c'est vrai je vais à motok
sinon je fais le message erreur

S2.Activate
On Error Resume Next
lgn3 = S2.Columns("A:G").Find(What:=motB, MatchCase:=True).Row + 2

mottrouv = S2.Columns("A:G").Find(What:=motC, lookat:=xlWhole,
MatchCase:=True)
If mottrouv = motC Then GoTo MOTOK

mottrouv = S2.Columns("A:G").Find(What:=motD, lookat:=xlWhole,
MatchCase:=True)
If mottrouv = motD Then GoTo MOTOK

If Err <> 0 Then

S1.Activate
S1.[a1].Select
MsgBox motC & motD & " non trouvé dans l'onglet" & S2.Name

Exit Sub
Else

MOTOK:
lgn4 = S2.Columns("A:G").Find(What:=mottrouv, lookat:=xlWhole,
MatchCase:=True).Row - 1

S2.Range(Cells(lgn3, 2), Cells(lgn4, 4)).Copy

End If










"FFO" a écrit dans le message de news:

Salut à toi
Je ne sais pas si j'ai bien tout compris dans ta macro mais il me semble
que
je changerais les variables :

motD par "préparation"
motC par "cuisson"

ainsi :

mottrouv = S2.Columns("A:G").Find(What:="préparation", lookat:=xlWhole,
MatchCase:=True)
If mottrouv = "préparation" Then lgn4 > S2.Columns("A:G").Find(What:=mottrouv,
lookat:=xlWhole, MatchCase:=True).Row - 1
End If

mottrouv = S2.Columns("A:G").Find(What:="cuisson", lookat:=xlWhole,
MatchCase:=True)
If mottrouv = "cuisson" Then lgn4 > S2.Columns("A:G").Find(What:=mottrouv, lookat:=xlWhole,
MatchCase:=True).Row - 1

Celà devrait convenir

Dis moi !!!!