If dans Do While ... Loop [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
24 décembre 2009
-
Messages postés
3
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
24 décembre 2009
-
Bonjour,

J'ai un pb assez intrigant je dois dire...

Lorsque je tente de faire un contrôle avec un if dans ma boucle Do While... Loop,
J'ai le message d'erreur suivant :
Erreur de compilation
Boucle sans Do
Si je commente la partie de code où il y a le if, aucun pb.

Le code, (juste pour préciser, je nettoie des fichiers excel avec cette petite procédure) :
    Set ListeCollec = CurrentDb.OpenRecordset("Collections_mv") ' requête qui regroupe les collections mv

    ListeCollec.MoveFirst 
    Do While Not ListeCollec.EOF
      

        ' Sélection fichier // corrections libellés colonnes +  colonne ean // suppression 1ere ligne // sauvegarde
        Set xlBook = xlApp.Workbooks.Open("\\#########\mv_c_" + ListeCollec("Collection") + ".xls")

                ActiveSheet.Range("A2") = "Ordre" ' on libelle la case A2 avec Ordre
                ActiveSheet.Range("B2") = "Ean" ' on libelle la case B2 avec Ean
                Rows("2:2").Select ' remplacement libellé colonne Thème (Détail) par ThèmeDétail
                    selection.Replace What:="Thème (Détail)", Replacement:="ThèmeDétail", _
                    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
                Rows("2:2").Select ' remplacement libellé colonne Volume par Volumes
                    selection.Replace What:="Volume", Replacement:="Volumes", _
                    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False

                If (ListeCollec("Collection") = "mv_c_bx_livres") Then
                    MsgBox "test if OK"
                End

                Columns("B:B").Select ' remplacement des caractères CB par vide dans colonne B
                selection.Replace What:="CB ", Replacement:="", LookAt:=xlPart, _
                    SearchOrder:=xlByRows, MatchCase:=False

                Worksheets("Sheet1").Rows(1).Delete Shift:=xlUp 'suppression ligne 1

        xlBook.Save
        xlBook.Close
      ListeCollec.MoveNext ' enregistrement suivant
      Loop


Merci si vous avez une idée !

3 réponses

Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
Bonjour,

Tu as oublié de mettre end if au lieu de End
If (ListeCollec("Collection") = "mv_c_bx_livres") Then
                 MsgBox "test if OK"
                EndIF
Sinon tu peux aussi t'arranger pour tout mettre sur la même ligne (si tu n'as qu'une seule instruction à exécuter dans ta condition):
If (ListeCollec("Collection") = "mv_c_bx_livres") Then MsgBox "test if OK"
        

L'expérience, c'est une connerie par jour, mais jamais la même..
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
If (ListeCollec("Collection") = "mv_c_bx_livres") Then
                    MsgBox "test if OK"
End


C'et normal, le End ? Ce ne serait pas End If ????
Messages postés
3
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
24 décembre 2009

Merci à vous 2. J'ai un peu honte j'avoue...

Et sinon : "L'expérience, c'est une connerie par jour, mais jamais la même.." Oui ca se vérifie là lol