Boucle for qui saute les cellules vides

Jilde

XLDnaute Occasionnel
Bonjour les gens ;) !!

Voilà, j'ai une boucle :
Code:
    For Each c In Range([Paramètres!I1], [Paramètres!I100].End(xlUp))
        Fichier_Source = c
        Fichier_Destination = Repertoire_Transfert_Complet + Mid(c, InStrRev(c, "/") + 1)
        FileCopy Fichier_Source, Fichier_Destination
        On Error GoTo Traitement_Erreur_Fichier_Ouvert
    Next c

cette boucle balaie donc les cellules I1 à I100.
Mais certaines de ces cellules sont vides, du coup, ma boucle plante.
Donc, je voudrais juste y intégrer un test sur la cellule genre si la cellule est égale à "", je saute la boucle.
J'ai essayer avec un if :

Code:
    For Each c In Range([Paramètres!I1], [Paramètres!I100].End(xlUp))
        Fichier_Source = c
        If Fichier_Source.value <>"" then
             Fichier_Destination = Repertoire_Transfert_Complet + Mid(c, InStrRev(c, "/") + 1)
             FileCopy Fichier_Source, Fichier_Destination
             On Error GoTo Traitement_Erreur_Fichier_Ouvert
        else
    Next c
Mais ça n'a pas marcher ...

Donc merci d'avance pour aide :) !!

At'chao !!
 

Efgé

XLDnaute Barbatruc
Re : Boucle for qui saute les cellules vides

Bonjour Jilde
Une proposition, pas testée faute de fichier exemple:
Code:
For Each c In Range([Paramètres!I1], [Paramètres!I100].End(xlUp))
    If c <> "" Then
        Fichier_Source = c
        Fichier_Destination = Repertoire_Transfert_Complet + Mid(c, InStrRev(c, "/") + 1)
        FileCopy Fichier_Source, Fichier_Destination
        On Error GoTo Traitement_Erreur_Fichier_Ouvert
    End If
Next c
Cordialement
 

Jilde

XLDnaute Occasionnel
Re : Boucle for qui saute les cellules vides

Yop Yop ROGER2327 & Efgé !!!

J'ai pas réussi avec le End If Roger, ça bug, je sais ce que j'ai fais c'est pas moi je l'jures m'sieur c'est pas d'ma faute !!!
Par contre, Efgé, ton code marche, enfin je suppose car j'ai un autre problème ...

J'ai mis un fichier en pièce jointe.

Le code va donc copier chaque fichier de la colonne I pour le coller dans le répertoire cible.

Sauf qu'il ne me prend pas tous les fichiers ... Je sais pas pourquoi mais il ne prend que le premier, et vu qu'il n'y en a pas dans le premier, y'a un "-" ... Mon répertoire est comme qui dirait un peu vide ...

Z'avez une idée ???

NOTA : J'ai remplacé "" par "-" pour ne pas avoir de cellule vide qui ferait remonter le "End(xlUp)".
 

Pièces jointes

  • Jilde-14-12-2010.xls
    47 KB · Affichages: 85

Efgé

XLDnaute Barbatruc
Re : Boucle for qui saute les cellules vides

Re Jilde, Bonjour Roger,
Il n'y a pas la macro en défaut dans l'exemple :confused:
Ce qui m'inquiète c'est :
J'ai remplacé "" par "-" pour ne pas avoir de cellule vide qui ferait remonter le "End(xlUp)".
Si toutes les lignes sont remplies, le End(XlUp) va trouver la première ligne....
Une dernière proposition en laissant les cellules qui doivent être vides, vides:
Code:
Sub test()
With Sheets("Paramètres")
    For Each c In .Range("I1:I" & .Range("I100").End(xlUp).Row)
        If c <> "" Then
            Fichier_Source = c
            Fichier_Destination = Repertoire_Transfert_Complet + Mid(c, InStrRev(c, "/") + 1)
            FileCopy Fichier_Source, Fichier_Destination
            On Error GoTo Traitement_Erreur_Fichier_Ouvert
        End If
    Next c
End With
End Sub
Cordialement
 

Jilde

XLDnaute Occasionnel
Re : Boucle for qui saute les cellules vides

Damned !!!
J'ai fait tout comme t'as dis Efgé, mais nada, que de chique, nothing, rien ...
Il ne prend que la première ligne !!! Et si elle est vide, j'ai un répertoire vide ...

On a l'impression que la boucle ne passe pas la première ligne ...

Du coup, j'ai nommé la plage de cellules "LISTE_FICHIERS" et j'ai mis :
Code:
With Sheets("Paramètres")
    For Each c In Range("Liste_fichiers")
    'For Each c In .Range("I1:I" & .Range("I100").End(xlUp).Row)
        If c <> "" Then
            Fichier_Source = c
            Fichier_Destination = Repertoire_Transfert_Complet + Mid(c, InStrRev(c, "/") + 1)
            FileCopy Fichier_Source, Fichier_Destination
            On Error GoTo Traitement_Erreur_Fichier_Ouvert
        End If
    Next c
End With
Et là, bingo, ça maaaAAAAAaaaAAAaaaaaAAAAAaaarche !!!!

Du tout, ben comme d'hab' hein, grand merci à ROGER2327, grand merci à Efgé, et grand merci le fofo et toute son équipe !!!

PS : J'étais pas venu depuis le ravalement de façade du forum et je dis chapeau l'artiste, joli forum !!!
 

Discussions similaires

Réponses
7
Affichages
449

Statistiques des forums

Discussions
312 559
Messages
2 089 641
Membres
104 239
dernier inscrit
STEVEALL