Ouverture de fichiers protégés selon valeurs cellules

Bonjour à tous,

Après avoir cherché (attentivement je l'espère) dans le forum je reviens vers vous pour une problématique.

J'ai mis dans un fichier de base

dans les cellules E2 à E20 le chemin du fichier;

dans les cellules F2 à F20 le nom du fichier;

dans les cellules G2 à G20 le mot de passe du fichier;

J'ai réussi à créer une macro depuis le fichier de base qui ouvre le premier fichier grâce au valeur E2;F2;G2 (avec l'aide de variable), faire des opérations et fermer le fichier.

La question est: Comment faire la boucle pour traiter le fichier E3;F3;G3 et ainsi de suite jusqu'à la fin de la plage déterminée (dans cette exemple E20;F20;G20)?

C'est sûrement tout bête Do while? Mais je n'ai pas réussi.

J'espère avoir été clair dans ma demande, et si ce n'est pas le cas vous savez quoi faire. Merci d'avance pour vos réponses.

Bonjour,

une proposition

Sub aargh()
'J 'ai mis dans un fichier de base
'dans les cellules E2 à E20 le chemin du fichier;
'dans les cellules F2 à F20 le nom du fichier;
'dans les cellules G2 à G20 le mot de passe du fichier;

' J 'ai réussi à créer une macro depuis le fichier de base qui ouvre le premier fichier grâce au valeur E2;F2;G2 (avec l'aide de variable), faire des opérations et fermer le fichier.
    Set wsr = ThisWorkbook.Sheets(1)
    For i = 2 To 20
        Workbook.Open wsr.Cells(i, "E") & wsr.Cells(i, "F"), Password:=wsr.Cells(i, "G")
        'traitement classeur
        Workbook.Close
    Next i
End Sub

Salut Acide Sulfurique,

Merci pour ta proposition qui m'a permis d'avancer dans la résolution de mon problème. J'ai du faire quelques changements. Ci-dessous la solution finale

Sub Importation_des_données_des_utilisateurs()

Application.ScreenUpdating = False

'effacer les données se trouvant sur la base de données globales en partant de la cellule B4

'Attention les cellules du Range("b5:bv65000") sont protégées si plus de 65000 lignes!!

'il faut modifier cette protection dans l'onglet

ThisWorkbook.Worksheets("SCI").Range("b5:bv65000").ClearContents

'ThisWorkbook.Worksheets("SCI").Range("b5:bv65000").ClearFormats

'importation de tous les fichier qui sont répertoriés dans les cellules E2:EXX "Chemin"

'les cellules F2:FXX "NomFichier" et les cellules G2:GXX "Password" de l'onglet "Contrôle"

'de la base de données.

'Pour que la macro fonctionne, il faut donc adapter ces cellules aux données de l'ORP

Set wsr = ThisWorkbook.Worksheets("Contrôle")

'il faut modifié le nombre To XX en fonction du nombre d'utilisateurs définis dans

'l'onglet "Contrôle" dans la plage E2:GXX

For I = 2 To 4

Chemin = wsr.Cells(I, "E").Value

NomFichier = wsr.Cells(I, "F").Value

Password = wsr.Cells(I, "G").Value

Set wkb = Workbooks.Open(Filename:=Chemin & NomFichier, Password:=Password)

'derlig = dernière ligne non vide sur la colonne D du fichier utilisateur en

'traitement dans la boucle

derlig = Workbooks(wkb.Name).Worksheets("SCI").Range("D" & Rows.Count).End(xlUp).Row

'derlig1 = dernière ligne non vide sur la colonne D du fichier de la base de données globales

derlig1 = ThisWorkbook.Worksheets("SCI").Range("D" & Rows.Count).End(xlUp).Row

'test si première utilisation

If derlig1 < 5 Then

derlig1 = 5

Else

derlig1 = derlig1 + 1

End If

'copie des donnees depuis le fichier individuel en traitement dans la boucle

'sur la base de données globales

Workbooks(wkb.Name).Worksheets("SCI").Range("b4:bv" & derlig).Copy ThisWorkbook.Worksheets("SCI").Range("b" & derlig1)

'Fermeture du fichier individuel en traitement dans la boucle

Workbooks(wkb.Name).Close False

Next I

Application.ScreenUpdating = True

End Sub

Merci pour ton aide.

Gladiator

Rechercher des sujets similaires à "ouverture fichiers proteges valeurs"