Recherche V dans plusieurs classeurs fermés
Résolu
Nuage75
Messages postés
23
Statut
Membre
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Bonjour,
Je dispose d'un dossier avec plusieurs sous dossiers dans lesquels se trouvent des classeurs excel en nombre aléatoire.
Tous ces classeurs sont tramés de la même façon.
J'ai un code qui me permet de lister sur les colonnes "A:C" :
- La racine de chaque fichier;
- Le nom du fichier;
- Un lien de téléchargement;
Un deuxième code me permet d'extraire sur les 6 colonnes suivantes et à partir de la liste des racines générées par le premier code, 6 cellules qui se trouvent dans un onglet "MAQUETTE" (identique sur chaque fichier).
Dans une nouvelle feuille de ce classeur j'essaie de mettre au point un troisième code qui a partir de la liste des racines générée par le premier code pourrait m'extraire de chaque fichier les lignes de l'onglet "MAQUETTE" dans lesquelles il y a inscrit "Sous total".
Le terme "Sous-total" n'est qu'une partie du texte contenu dans le cellule et le nombre de lignes contenant "Sous-total" est aléatoire.
Je suis un grand débutant dans le domaine et ait beaucoup de mal à mettre au point ce troisième code.
Merci pour votre aide
Je dispose d'un dossier avec plusieurs sous dossiers dans lesquels se trouvent des classeurs excel en nombre aléatoire.
Tous ces classeurs sont tramés de la même façon.
J'ai un code qui me permet de lister sur les colonnes "A:C" :
- La racine de chaque fichier;
- Le nom du fichier;
- Un lien de téléchargement;
Un deuxième code me permet d'extraire sur les 6 colonnes suivantes et à partir de la liste des racines générées par le premier code, 6 cellules qui se trouvent dans un onglet "MAQUETTE" (identique sur chaque fichier).
Dans une nouvelle feuille de ce classeur j'essaie de mettre au point un troisième code qui a partir de la liste des racines générée par le premier code pourrait m'extraire de chaque fichier les lignes de l'onglet "MAQUETTE" dans lesquelles il y a inscrit "Sous total".
Le terme "Sous-total" n'est qu'une partie du texte contenu dans le cellule et le nombre de lignes contenant "Sous-total" est aléatoire.
Je suis un grand débutant dans le domaine et ait beaucoup de mal à mettre au point ce troisième code.
Merci pour votre aide
A voir également:
- Recherche V dans plusieurs classeurs fermés
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Hyper-v download - Télécharger - Divers Utilitaires
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Rouvrir les onglets fermés chrome - Guide
- Recherche photo - Guide
2 réponses
j'y suis parvenu, voici le code
Sub recup()
Set f = ThisWorkbook.Sheets("Feuil1")
'parcourir la colonne 4 (à partir de la ligne 7, jusqu'à la dernière cellule non-vide de cette même colonne)
For lig = 7 To f.Cells(Rows.Count, 4).End(xlUp).Row
'ouvrir chaque fichier dont le chemin d'accès et le nom sont renseignés en colonne D
Workbooks.Open Filename:=f.Cells(lig, 4)
'recopier en colonne F et G de ton fichier (celui contenant la macro), le contenu des cellules A16 et A19, d'une feuille nommée "MAQUETTE DEVIS" dans le ficher qui vient d'être ouvert
ThisWorkbook.Sheets(1).Cells(lig, 9) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[A16]
ThisWorkbook.Sheets(1).Cells(lig, 10) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[A19]
ThisWorkbook.Sheets(1).Cells(lig, 11) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[E23]
ThisWorkbook.Sheets(1).Cells(lig, 12) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[E24]
ThisWorkbook.Sheets(1).Cells(lig, 13) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[E25]
'refermer le fichier (celui dont le nom figure en colonne D)
ActiveWorkbook.Close savechanges:=False
Next lig
End Sub
Bonjour,
Ou en êtes vous dans l'avancement de ce code?
Pourriez vous nous montrer le code tel que vous l'avez écrit jusqu'à présent?
Ou en êtes vous dans l'avancement de ce code?
Pourriez vous nous montrer le code tel que vous l'avez écrit jusqu'à présent?
Bonjour,
Je repars d'un code existant :
Sub recup()
Range("I7").Select 'sélectionner la cellule de début
Chemin = "D:\AJOURDAN\Mes Documents\ECOTEC 3eme ANNEE\PROJET D'ENTREPRISE\VBA FM\Devis\Devis 001\"
Fichier = Dir(Chemin & "*.xls")
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
Set Feuille = ActiveWorkbook.Sheets("MAQUETTE DEVIS")
ThisWorkbook.Activate
ActiveCell.Value = Feuille.Range("C3").Value
ActiveCell.Offset(0, 1).Value = Feuille.Range("A16").Value
ActiveCell.Offset(0, 2).Value = Feuille.Range("A19").Value
ActiveCell.Offset(0, 3).Value = Feuille.Range("E23").Value
ActiveCell.Offset(0, 4).Value = Feuille.Range("E24").Value
ActiveCell.Offset(0, 5).Value = Feuille.Range("E25").Value
Windows(Fichier).Close savechanges:=False
ThisWorkbook.Activate
Range("I65536").End(xlUp).Offset(1, 0).Select
Fichier = Dir ' Fichier suivant
Loop
End Sub
Cependant, je dois encore faire quelques modifs.
J'aimerais que le Chemin ne soit pas rentré manuellement, mais que la macro se serve de la liste présente dans la colonne D de la feuille et au lieu de m'extraire les cellules A16; A19... E25, il me faut les lignes complètes contenant le texte sous total
Je repars d'un code existant :
Sub recup()
Range("I7").Select 'sélectionner la cellule de début
Chemin = "D:\AJOURDAN\Mes Documents\ECOTEC 3eme ANNEE\PROJET D'ENTREPRISE\VBA FM\Devis\Devis 001\"
Fichier = Dir(Chemin & "*.xls")
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
Set Feuille = ActiveWorkbook.Sheets("MAQUETTE DEVIS")
ThisWorkbook.Activate
ActiveCell.Value = Feuille.Range("C3").Value
ActiveCell.Offset(0, 1).Value = Feuille.Range("A16").Value
ActiveCell.Offset(0, 2).Value = Feuille.Range("A19").Value
ActiveCell.Offset(0, 3).Value = Feuille.Range("E23").Value
ActiveCell.Offset(0, 4).Value = Feuille.Range("E24").Value
ActiveCell.Offset(0, 5).Value = Feuille.Range("E25").Value
Windows(Fichier).Close savechanges:=False
ThisWorkbook.Activate
Range("I65536").End(xlUp).Offset(1, 0).Select
Fichier = Dir ' Fichier suivant
Loop
End Sub
Cependant, je dois encore faire quelques modifs.
J'aimerais que le Chemin ne soit pas rentré manuellement, mais que la macro se serve de la liste présente dans la colonne D de la feuille et au lieu de m'extraire les cellules A16; A19... E25, il me faut les lignes complètes contenant le texte sous total
Merci de ton retour.
Désolé de n'être pas revenu plus tôt, je n'ai pas eu de suivi sur ce sujet...
A+