Bonjour,
Sur mon premier classeur, j’ai une liste de nom de département dans la colonne A.
J’ai écrit une macro qui va chercher la valeur de la cellule A15 dans un autre classeur, dont le nom est : département.xlsx. La macro va chercher dans la colonne A1 le nom du département pour fabriquer le nom du classeur dans laquelle elle va chercher la valeur en A15.
J’arrive à créer la macro pour le premier département (dont le nom est en A1). J’aimerais que la macro, quand elle est excécuter, le fasse pour les autres lignes : A2, A3, A4, etc. tant qu’il y a un nom de département dans la colonne A. Et s’arrête donc à la première case vide de la colonne A.
Merci pour te conseils !!!
Cordialement,
Olivier PIC
Bonjour
Pour connaître la dernière case pleine de la colonne A
Range("A1").end(xlDown)
Tu peux ensuite faire une boucle jusqu’à cette case
Bonjour,
Bonjour Doc
Un petit mémo (que je me sert toujours, car je suis feignant, et j’ai les bouts de doigts usés) 
'déclaration des variables
Dim derniereLigne As Long
Dim derniereColonne As Integer
Dim myRange As Range
Range("A" & Rows.Count).End(xlUp).Select 'sélection de la dernière cellule non vide de la colonne A
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row + 1 'n° de la première ligne vide de la colonne A
Set myRange = Range("A" & Rows.Count).End(xlUp) 'enregistrement de la dernière cellule non vide de la colonne A dans la variable myRange
myRange.Select 'sélection de la variable myRange
Cells(1, Columns.Count).End(xlToLeft).Select 'sélection de la dernière cellule non vide de la ligne 1
derniereColonne = Cells(1, Columns.Count).End(xlToLeft).Column 'n° de la dernière colonne non vide de la ligne 1
Cells(1, Columns.Count).End(xlToLeft).Offset(, 1).Select 'sélection de la première cellule vide de la ligne 1
derniereColonne = Cells(1, Columns.Count).End(xlToLeft).Column + 1 'n° de la première colonne vide de la ligne 1
1 « J'aime »
Bonjour
Merci bcp pour l aide.
Comment dois je faire pour faire la macro en boucle ?
-------- Message d’origine --------
Bonjour,
Commence déjà par mettre un classeur en PJ dans le poste et je te ferai le montage expliqué 
Voici les 4 fichiers. Le fichier Recap est celui où j’ai écris une macro pour aller récupérer une donnée dans le premier classeur (Baillard Alexandre). J’aimerais donc que cette macro fasse la même opération sur la ligne suivante, pour aller récupérer la donnée dans le second classeur (Bamba Daouda). Etc.
Cordialement,
Olivier PIC
[http://wiki75p2/signature/aajeune.png]http://www.jeunesse2017.fr/
Olivier PIC
Directeur
Tél : 0237370879
Port : 0611450142
olivier.pic@apprentis-auteuil.orgmailto:olivier.pic@apprentis-auteuil.org
Territoire Centre
Région Nord Ouest
Notre Dame d’Avenir
Chateau des Vaux
Saint Maurice Sanit Germain
28240 La Loupe

Projets_vac_2017_18_BAILLART_Alexandre.xls (147 KB)
Projets_vac_2017_18_BAMBA_Daouda.xls (190 KB)
Projets_vac_2017_18_BETTINE_Bassem.xls (181 KB)
Re,
Il manquerais pas dés fois un petit classeur qui se nomme RECAP 
Oups ! le voici 
recap essai.xlsm (16.3 KB)
Re,
Bon je suppose que c’est le montant total qui est à récupérer (et non la cellule A1)
Alors, est il toujours à la même cellule de l’onglet “VAC HIVER BUDGET” en B22
car sur un classeur c’est B22 et sur les 2 autres c’est B42
De plus les classeurs sont protégés par MdP
Une question bien posée avec des renseignements corrects et des données fournies sans problèmes
**C'est le rêve et du temps gagné**
D’autre part lorsque vous allez rapatrier les données, les noms des cellules B11 et D11 sont présents
cela permet d’avoir un feuille REPAP vierge au départ avec récupération par boucle en ouvrant, piochant les données, fermer le classeur et ouvrir le suivant.
Bonjour,
A tester
les classeurs ainsi que RECAP doivent être dans le même dossier
On ouvre le classeur RECAP et on clique, le reste est automatique
Comme les montants sur deux classeurs ne sont pas sur la même cellule (le résultat est vide)
Module:
Sub Recap()
'Déclaration type de variable
Dim Repertoire As String, Fichier As String 'texte
Dim WB As Workbook 'classeur
Dim ws As Worksheet 'onglet
Dim i As Integer 'nombre entier
Dim Dossier As Object
Dim fso As Scripting.FileSystemObject
Dim FileItem As Scripting.File
Application.ScreenUpdating = False 'désactivation défilement écran
Sheets("Feuil1").Activate
Range("A2:B65000").ClearContents
i = 2
Set ws = ThisWorkbook.Worksheets("Feuil1")
Repertoire = ThisWorkbook.Path & "\" 'définit le répertoire de recherche
Fichier = Dir(Repertoire & "*.xls") 'spécifie la recherche pour le fichiers .xls
Set Dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Repertoire)
Do While Fichier <> "" 'boucle sur les fichiers du répertoire
If ThisWorkbook.Name <> Fichier Then 'sauf sur ce fichier si dans même répertoire
Set WB = Workbooks.Open(Repertoire & Fichier) 'ouvre chaque classeur
ws.Cells(i, 1) = WB.Worksheets("Vac hiver budget").Range("B11") & " " & WB.Worksheets("Vac hiver budget").Range("D11") 'Regroupe Nom et Prénom
ws.Cells(i, 2) = WB.Worksheets("Vac hiver budget").Range("B22") ' Montant TOTAL
i = i + 1 'ajoute une ligne sur classeur destination (RECAP)
WB.Close False 'referme le classeur sans sauvegarder
End If
Fichier = Dir 'Sélectionne le prochain classeur
Loop
Range("A1").Select
End Sub
recap essai.xlsm (28,1 Ko)
Bonsoir,
Oui vous avez raison, il faut que je corrige les tableaux pour que le total soit toujours dans la case B22 (bon, le problème c’est que j’ai oublié le code de protection de la feuille…)
Quand j’exécute la macro, voici ce qu’il m’affiche :
[/uploads/db8237/original/2X/2/2e8c0f98b34a8adcd06fc3ccbdfba7e6426dc75e.png]
La ligne surlignée en jaune est la suivante :
ws.Cells(i, 1) = WB.Worksheets(« Vac hiver budget »).Range(« B11 ») & " " & WB.Worksheets(« Vac hiver budget »).Range(« D11 ») 'Regroupe Nom et Prénom
Sauriez ce que je dois faire pour que cela marche ?
Cordialement,
Olivier PIC
[http://wiki75p2/signature/aajeune.png]http://www.jeunesse2017.fr/
Olivier PIC
Directeur
Tél : 0237370879
Port : 0611450142
olivier.pic@apprentis-auteuil.orgmailto:olivier.pic@apprentis-auteuil.org
Territoire Centre
Région Nord Ouest
Notre Dame d’Avenir
Chateau des Vaux
Saint Maurice Sanit Germain
28240 La Loupe


Bonsoir
A la question:
Sauriez ce que je dois faire pour que cela marche ?
Eh bien fournir des classeurs identiques pour la récupération, avec ses données à reprendre renseignées, et si il a MdP, le fournir pour l’incrémenter dans la macro pour déprotéger et protéger en fin d’opération
Ensuite, si vous avez bien lu les instructions
A tester
les classeurs ainsi que RECAP doivent être dans le même dossier
On ouvre le classeur RECAP et on clique, le reste est automatique
les classeurs ainsi que RECAP doivent être dans le même dossier
1 « J'aime »
Ok ! merci bcp pour l’aide.
Je m’aperçois que je suis un peu juste en VBA, proposeriez-vous une formation en ligne pour débutant ?
Cordialement,
Olivier PIC
[http://wiki75p2/signature/aajeune.png]http://www.jeunesse2017.fr/
Olivier PIC
Directeur
Tél : 0237370879
Port : 0611450142
olivier.pic@apprentis-auteuil.orgmailto:olivier.pic@apprentis-auteuil.org
Territoire Centre
Région Nord Ouest
Notre Dame d’Avenir
Chateau des Vaux
Saint Maurice Sanit Germain
28240 La Loupe

Bonjour,
Faites un petite recherche sur YOUTUBE avec tutoriel VBA EXCEL
Vous aurez des tutoriels plus ou moins explicite, pour débutant, initié et pro.
Les sujets sont tellement vastes …