Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro réunissant fonctions recherche et extraction

  • Initiateur de la discussion Initiateur de la discussion thomasdu40
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

thomasdu40

Guest
Bonjour,

Je voudrai qu'avec une macro je puisse rechercher un fichier sur un chemin d'accès bien précis. Si la macro trouve ce fichier, qu'elle l'ouvre et qu'elle extrait des données issues de plusieurs onglets. Est-ce possible ?

J'ai effectué pas mal de recherche et honnêtement je coince.🙁

Pour explication, je joins une page regroupant le déroulement des opérations.

Merci.
 

Pièces jointes

Re : Macro réunissant fonctions recherche et extraction

Bonjour thomasdu40,
J'ai fais seulement un début de macro, comme je ne peux rien tester je t'en laisse le soin
Je me suis arrêté et vais pas voir en constatsISO22000.
Donc à tester
Bruno
Code:
Sub test()
Dim Wb As Workbook
Sheets(1).Select 'revoir si c'est la page 1 qui recois les données
On Error Resume Next
Set Wb = GetObject("G:\S-ISO\A-Audits\NomFichier.xls") 'revoir nomfichier
If Err <> 0 Then MsgBox "Fichier Absent": Exit Sub
lig = [N65536].End(3).Row + 1
Range("N" & lig).Value = Wb.Sheets(1).[H8].Value
With Wb.Sheets("ConstatsISO")
For k = 8 To [A65536].End(3).Row
If .Range("A" & k) <> "" Then
lig = [I65536].End(3).Row + 1
Range("I" & lig).Value = .Range("A" & k).Value
Range("P" & lig).Value = .Range("B" & k).Value
Range("H" & lig).Value = .Range("C" & k).Value
Range("Q" & lig).Value = .Range("D" & k).Value
Range("R" & lig).Value = .Range("E" & k).Value
End If
Next
Wb.Close
End Sub
 
Re : Macro réunissant fonctions recherche et extraction

Bonjour Youky et merci pour ton aide.

Apparemment dans la macro, la recherche d'un fichier se fait en inscrivant le nom directement dans la macro. Chose que je ne veux pas. Là je sais pas si c'est du domaine du possible.

Moi je voudrai que dès que j'ouvre la fenêtre de recherche, que je saisisse le nom du fichier et que le macro me recherche ce fichier dans le chemin voulu.

Je joins le fichier où on recherchera le fichier et qui recevra les données.

Merci.
 

Pièces jointes

Re : Macro réunissant fonctions recherche et extraction

Thomas Voici,
Je te renvoi le fichier corrigé avec cette macro
Bruno
Code:
Private Sub CommandButton1_Click()
Dim Wb As Workbook
Feuil1.Select 'Feuil1(nom de gauche en projet)
chemin = "G:\S-ISO\A-Audits\"
fichier = TextBox1.Text
On Error Resume Next
Set Wb = GetObject(chemin & fichier)
If Err <> 0 Then MsgBox "Fichier Absent": Exit Sub
lig = [N65536].End(3).Row + 1
Range("N" & lig).Value = Wb.Sheets(1).[H8].Value
With Wb.Sheets("ConstatsISO")
For k = 8 To .[A65536].End(3).Row
If .Range("A" & k) <> "" Then
lig = [I65536].End(3).Row + 1
Range("I" & lig).Value = .Range("A" & k).Value
Range("P" & lig).Value = .Range("B" & k).Value
Range("H" & lig).Value = .Range("C" & k).Value
Range("Q" & lig).Value = .Range("D" & k).Value
Range("R" & lig).Value = .Range("E" & k).Value
End If
Next
End With
Wb.Close
End Sub
 

Pièces jointes

Dernière édition:
Re : Macro réunissant fonctions recherche et extraction

Voici la macro entière
Passe en revu dans la macro les noms des onglets car j'ai remarqué avec ou sans espaces
Les noms des onglets doivent bien être orthographiés.
Bruno
Code:
Sub test()
Dim Wb As Workbook
Feuil1.Select 'Feuil1(nom de gauche en projet)
chemin = "G:\S-ISO\A-Audits\"
fichier = TextBox1.Text
On Error Resume Next
Set Wb = GetObject(chemin & fichier)
If Err <> 0 Then MsgBox "Fichier Absent": Exit Sub
lig = [N65536].End(3).Row + 1
Range("N" & lig).Value = Wb.Sheets(1).[H8].Value
With Wb.Sheets("ConstatsISO")
For k = 8 To .[A65536].End(3).Row
If .Range("A" & k) <> "" Then
lig = [I65536].End(3).Row + 1
Range("I" & lig).Value = .Range("A" & k).Value
Range("P" & lig).Value = .Range("B" & k).Value
Range("H" & lig).Value = .Range("C" & k).Value
Range("Q" & lig).Value = .Range("D" & k).Value
Range("R" & lig).Value = .Range("E" & k).Value
End If
Next
End With

With Wb.Sheets("ConstatsISO22000")
For k = 8 To .[A65536].End(3).Row
If .Range("A" & k) <> "" Then
lig = [I65536].End(3).Row + 1
Range("I" & lig).Value = .Range("A" & k).Value
Range("P" & lig).Value = .Range("B" & k).Value
Range("H" & lig).Value = .Range("C" & k).Value
Range("Q" & lig).Value = .Range("D" & k).Value
Range("R" & lig).Value = .Range("E" & k).Value
End If
Next
End With

With Wb.Sheets("ConstatsIFS")
For k = 6 To .[C65536].End(3).Row
If .Range("C" & k) <> "" Then
lig = [I65536].End(3).Row + 1
Range("I" & lig).Value = .Range("C" & k).Value
Range("P" & lig).Value = .Range("D" & k).Value
Range("H" & lig).Value = .Range("E" & k).Value
Range("Q" & lig).Value = .Range("B" & k).Value
Range("R" & lig).Value = .Range("F" & k).Value
End If
Next
End With

With Wb.Sheets("ConstatsBRC")
For k = 6 To .[C65536].End(3).Row
If .Range("C" & k) <> "" Then
lig = [I65536].End(3).Row + 1
Range("I" & lig).Value = .Range("C" & k).Value
Range("P" & lig).Value = .Range("D" & k).Value
Range("H" & lig).Value = .Range("E" & k).Value
Range("Q" & lig).Value = .Range("B" & k).Value
Range("R" & lig).Value = .Range("F" & k).Value
End If
Next
End With
Wb.Close
End Sub
 
Dernière édition:
Re : Macro réunissant fonctions recherche et extraction

C'est bizarre car il me met "fichier absent" lorsque je recherche un fichier. Pourtant le fichier est bien présent sous le chemin d'accès.😕
 
Re : Macro réunissant fonctions recherche et extraction

La recherche peut se faire sur un fichier non texte c'est à dire enregistré sour la forme suivante : 03-2010 ?

Car j'ai vu la ligne "fichier = TextBox1.Text" dans la macro qui apparemment recherche un fichier enregistré sous la forme d'un texte.

En tout cas la macro fonctionne à première vue. C'est super et je te remercie de ta collaboration mais surtout pour ta réactivité et tes connaissances dans ce domaine.😀
 
Re : Macro réunissant fonctions recherche et extraction

Le seul hic c'est qu'il ne m'extrait pas le numéro du rapport qui se trouve dans le fichier trouvé à l'onglet "plan d'audit" pour le coller dans le plan d'action SMQ colonne N de la dernière ligne vide.

Voici la ligne :
Code:
Range("N" & lig).Value = Wb.Sheets(1).[H8].Value
 
Re : Macro réunissant fonctions recherche et extraction

re,
remplace
Range("N" & lig).Value = Wb.Sheets(1).[H8].Value
par
Range("N" & lig).Value = Wb.Sheets("plan d'action SMQ").[H8].Value
si ce nom d'onglet est bien le bon car je n'arrive pas à bien saisir le nom des onglets.
Ps :
dans ma dernière macro remplace
Feuil1.select
par
Sheets("nom de l'onglet qui reçoit les données).select
 
Re : Macro réunissant fonctions recherche et extraction

Re,

Non cela ne marche pas. J'ai remis "Feuil1.Select" par contre le code suivant
Code:
Range("N" & lig).Value = Wb.Sheets("plan d'action SMQ").[H8].Value
ne fonctionne pas.

Concrètement : Le plan d'action SMQ recoit les données.

Le second fichier recherché et dont les données sont extraites, il faut que la valeur présente dans la cellule H8 de l'onglet "Plan d'audit" de ce second fichier soit intégré dans le plan d'action SMQ colonne N mais cette valeur devra être recopiée autant de fois qu'il y a de données présentes dans les onglets Constats vérifiés par la macro.

Dur dur non ?
 
Dernière modification par un modérateur:
Re : Macro réunissant fonctions recherche et extraction

Merci à toi Youky.

Même si il ne recopie pas le contenu de la cellule H8 dans chacune des lignes du Plan d'action SMQ sauf la première, je considère que le gros du travail est fait.

Je vais essayé de trouver la solution moi-même.

Je clôture ce sujet.

Encore merci pour ton aide.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
6
Affichages
1 K
maxime45
M
P
Réponses
1
Affichages
979
Ptrs32
P
P
Réponses
2
Affichages
991
panpipes
P
P
Réponses
0
Affichages
880
panpipes
P
W
Réponses
7
Affichages
1 K
white-angel
W
G
Réponses
3
Affichages
2 K
Gilles52300
G
P
Réponses
2
Affichages
1 K
G
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…