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

Problème avec Run dans une boucle For

3 réponses
Avatar
Lycaon
Bonjour =E0 tous,

J'ai un probl=E8me dans la boucle ci dessous.

Tout se passe bien jusqu'au Run. A ce moment l=E0, il sort directement
de ma proc=E9dure et retourne dans le corps principal de ma macro.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D
Private Sub TesteFormat()
Dim X As Variant
Dim NomProcedureEnCours As String

For Each X In Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t")
NomProcedureEnCours =3D "TesteFormat" & UCase(X)
Run NomProcedureEnCours
Next
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D
End Sub
Sub TesteFormatA()
Dim UneCell As Range

For Each UneCell In Range("A" & LigneEntete + 2, "A" &
Cells(Rows.Count, 3).End(xlUp).Row)
If Not IsNumeric(Left(UneCell.Value, 4)) Then
Workbooks(NomClasseurRemarques).Activate
Range("a" & LigneEnCours).Value =3D NomClasseurEnCours
Range("b" & LigneEnCours).Value =3D "La cellule " & UneCell.Address &
"n'est pas un num=E9ro de r=E9f=E9rence"
LigneEnCours =3D LigneEnCours + 1
End If
Next
End Sub
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D

Est ce que quelqu'un conna=EEtrait la raison de ce dysfonctionnement ?

Merci =E0 tous

Lycaon

3 réponses

Avatar
Lycaon
J'ai oublié de préciser qu'il me dit ne pas trouver la procédure
TesteFormatA (run error 1004)
Avatar
Garette
Bonjour,

Sans reprendre tout, j'arrive à qq chose de mieux en remplaçant :

Run NomProcedureEnCours
par :
Application.Run ActiveSheet.Name & "." & NomProcedureEnCours
Avatar
Lycaon
merci pour ta réponse,

Voilà comment j'ai finalement résolu mon problème :

Private Sub TesteFormat()
Dim i As Long
For i = 1 To 20
Call TesteFormatColonne(i)
Next i
End Sub

Je n'ai donc pas pu tester ta solution.

@ bientôt

Lycaon