Microsoft 365 Associer plusieurs plages à une boucle FOR

  • Initiateur de la discussion Initiateur de la discussion spike29
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

spike29

XLDnaute Occasionnel
Bonjour le forum,

Je n'arrive pas à simplifier ma syntaxe pour la boucle FOR ci-dessous.

J'ai trois groupes de plages que j'aimerai associer à "G", mais on me remonte une erreur de syntaxe au niveau de la virgule.
Après quelques recherches, je n'ai malheureusement pas trouvé par quel moyen arriver à ce résultat, à savoir asocier à "G", la plage 28 to 42 + 54 To 68 + 80 To 94.

Merci d'avance pour votre aide.

VB:
With Worksheets("TEST1")

For G = 28 To 42 , 54 To 68 , 80 To 94

If Cells(G, 12) <> "" And IsNotNumeric(Range("M" & x).Value) And Len(Range("M" & x).Value) <> 6 Then _
MsgBox "TEST", vbCritical, "Contrôle format "
Exit Sub

End With

Next G
 
Bonjour
A mon avis , il te faut 3 boucles

Ou alors rechercher avec union de plage
Ci joint un exemple
Code:
'Associe 2 plages en un seul objet avec la méthode UNION
Sub UniondePlage()
Dim plg1, plg2, ToutePlage As Range
Set plg1 = Sheets("Feuil1").Range("A1:A10")
Set plg2 = Sheets("Feuil1").Range("B10:B20")
Set ToutePlage = Union(plg1, plg2)
ToutePlage.Interior.ColorIndex = 5
End Sub



VB:
Sub tutu()
Dim G As Byte
    With Worksheets("TEST1")
            For G = 28 To 42
                If Cells(G, 12) <> "" And IsNotNumeric(Range("M" & x).Value) And Len(Range("M" & x).Value) <> 6 Then _
                        MsgBox "TEST", vbCritical, "Contrôle format "
                        Exit Sub
                End If
            Next
            For G = 54 To 68
                If Cells(G, 12) <> "" And IsNotNumeric(Range("M" & x).Value) And Len(Range("M" & x).Value) <> 6 Then _
                        MsgBox "TEST", vbCritical, "Contrôle format "
                        Exit Sub
                End If
            Next
            For G = 80 To 94
                If Cells(G, 12) <> "" And IsNotNumeric(Range("M" & x).Value) And Len(Range("M" & x).Value) <> 6 Then _
                        MsgBox "TEST", vbCritical, "Contrôle format "
                        Exit Sub
                End If
            Next
    End With
End Sub
 
un autre solution

Code:
Sub titi()
    Dim Cell As Range
    Dim X As Byte
        With Worksheets("TEST1")
            Set MaPlage = Application.Union(Range("L28:L42"), Range("L54:L68"), Range("L80:L94"))
            For Each Cell In MaPlage
                If Cell <> "" And IsNumeric(Range("M" & X) = False) And Len(Range("M" & X).Value) <> 6 Then
                    MsgBox "TEST", vbCritical, "Contrôle format "
                    Exit Sub
                End If
            Next
        End With
End Sub
 
Bonjour JM27,

Merci pour tes réponses, j'ai testé la dernière.
Toutefois, j'ai un code erreur 1004 la méthode range de l'objet globale à échoué

C'est cette ligne là qui semble poser souci :

VB:
If Cell <> "" And IsNumeric(Range("M" & Q) = False) And Len(Range("M" & Q).Value) <> 6 Then

Après oui j'ai toujours l'option de faire mes 3 boucles séparément, mais j'essaye de simplifier le code à son maximum.

Bonne fin de journée
 
bonsoir
et si tu postais un fichier anonymisé ?
Chez moi la dernière proposition fonctionne.
Y 'a t'il une valeur dans la variable X ?

Un petit fichier exemple en annexe
Dans l'exemple j'ai changé la variable X par un Cell.row ( comme je ne sais pas ce qu'il y a dans X) pour tester et j'ai supprimé le exit sub
 

Pièces jointes

Dernière édition:
Oui, tu as raison. Rien de mieux qu'un fichier comme base d'échange.

L'objectif du code est d'assurer un contrôle du respect du format dans la colonne M dès lors que se trouve une valeur dans la colonne L.

Critère du format :
être une séquence de 6 chiffres, ex : 111222

En dehors de cela => Exit sub


Le fichier en PJ.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
383
Réponses
2
Affichages
479
Retour