If dans une boucle Do Loop

Bonjour,

Je débute en VBA et j'ai essayé de créer une boucle Do Loop dans laquelle il y a une condition If.

L'idée est que pour chaque cellule remplie de la colonne A, il faut vérifier que sur la même ligne, la cellule de la colonne D est bien remplie. Sinon, il faut arrêter la boucle et afficher un message d'erreur "Il manque la traduction d'un article".

J'ai écrit ce bout de code mais j'ai un msg d'erreur (qui revient souvent au cours de mes tests sans que je comprenne vraiment pourquoi) qui m'indique une erreur de compilation "Else sans If" :

'Check if traductions are fulfilled

With Sheets("CREA - Traduction")

Dim i As Integer

Dim c As Variant

i = 1

Do

i = i + 1

For Each c In .Cells(i, 4)

If c = "" Then MsgBox ("Il manque la traduction d'un article")

Exit For

Else: pass

Loop While Cells(i, 1) <> ""

Merci par avance de votre aide !

Clara

Apres :

If c = "" Then MsgBox ("Il manque la traduction d'un article")

Mettre :

Exit sub

et supprimer le Else : pass

Cdt

Bonjour,

Mettre :

Sub test()

Dim i As Integer

With Sheets("CREA - Traduction")

i = 1

Do

If .Cells(i, 4) = "" Then MsgBox ("Il manque la traduction d'un article ligne " & i)

i = i + 1

Loop While Cells(i, 1) <> ""

End with

End Sub

A+

Hello !

Merci @galopin01 et Toukoul pour votre retour !

J'ai fait un mélange de vos deux réponses car effectivement si jamais la condition est remplie j'aimerais aussi que la macro s'arrête (et j'ai donc ajouté un Else car sinon i=i+1 serait considéré comme faisant parti de la condition initiale n'est-ce pas ?) :

Malheureusement, j'ai un message d'erreur qui indique "Erreur de compilation : End Sub attendu)

Sub test()

Dim i As Integer

With Sheets("CREA - Traduction")

i = 2

Do

If .Cells(i, 4) = "" Then MsgBox ("Il manque la traduction d'un article" & i)

Exit Sub

Else: i = i + 1

Loop While Cells(i, 1) <> ""

End With

End Sub

Merci pour votre aide !

Clara

If .Cells(i, 4) = "" Then

MsgBox ("Il manque la traduction d'un article" & i)

Exit Sub

end if

Merci !

Au final j'ai fait le code suivant et ça fonctionne correctement :

With Sheets("CREA - Traduction")

'Set last cell source products

Dim last_cell_2 As Integer

last_cell_2 = Sheets("CREA - Traduction").Range("A65536").End(xlUp).Row

Dim i As Integer

For i = 1 To last_cell_2

If Cells(i, 4) = "" Then MsgBox "Il manque la traduction d'un article, merci de compléter pour que le fichier soit généré": Exit Sub

Next i

Merci

vous pouvez clore le sujet et cocher le V vert si vous avez apprécié l'aide

Merci

Rechercher des sujets similaires à "boucle loop"