If dans Do While ... Loop

Résolu
stanymi Messages postés 3 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 décembre 2009 - 9 janv. 2008 à 10:44
stanymi Messages postés 3 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 décembre 2009 - 9 janv. 2008 à 10:52
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 !
A voir également:

3 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
9 janv. 2008 à 10:49
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..
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 janv. 2008 à 10:50
If (ListeCollec("Collection") = "mv_c_bx_livres") Then
                    MsgBox "test if OK"
End


C'et normal, le End ? Ce ne serait pas End If ????
3
stanymi Messages postés 3 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 décembre 2009
9 janv. 2008 à 10:52
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
0
Rejoignez-nous