Macro avec « Rechercher ou remplacer » (Ctrl+F)

Bonjour,

Il y a quelques années, j'ai créé une « base de données » sur Excel, pour gérer mes partitions, celles de mes amis et celles de quelques élèves.

Aujourd’hui, suite à de multiples changements d’ordinateurs, il ne reste de cette base que des copies en PDF.

J’ai essayé de recréer cette base (toujours sur Excel) en copiant les champs et en les collant sur une feuille. Cela fonctionne… presque. Car à l’origine, j’avais prévu de créer une ligne « Nom de la partition » avec une police de caractère Arial taille 10 et en dessous le « Nom(s) de(s) l’auteur(s) » en Arial taille 8

Grâce à la fonction « Rechercher ou remplacer » (Ctrl+F) je peux sélectionner, copier les champs « Nom de la partition » et à les coller sur une autre feuille, mais je n’arrive pas à intégrer ces informations dans une macro.

Pouvez-vous m’aider ? Merci

Bonjour Chamber

Excel ne permet pas de rechercher dans les fichiers PDF, uniquement dans des feuilles (Tableaux de cellules).

Pour rechercher des champs dans des Pdf, il n'y a pas bien de solution qui s'intègre en macro VBA.

Cependant, tu peux essayer d'utiliser ce qui est dit sur le web ici : A tenter, sans conviction

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.NameSpace(Chemin)
For Each strFileName In objFolder.Items

If Right(objFolder.GetDetailsOf(strFileName, 0), 4) = ".pdf" Then
i = i + 1
Cells(i, 1) = objFolder.GetDetailsOf(strFileName, 0)
objFolder.GetDetailsOf(strFileName, 9) 'auteur
objFolder.GetDetailsOf(strFileName, 10) 'titre
End If

Next

Bonjour Scrapper,

Merci pour ta réponse, mais il me semble que je me sois mal exprimé, je copie les intitulés du PDF, mais je les colle dans une feuille Excel.

EDIT :Toujours pas clair. Un Copier sans Coller je ne comprend pas : les deux opérations manuelles sont obligatoires. Dans le coller on indique l'endroit où l'information va.

A moins que tu remplis une feuille avec les données (auteur, nom de la partition) sur une feuille, puis que tu voudrais que cela se reporte sur une autre feuille du même classeur sous une autre disposition (cela est possible avec une macro Worksheet_SelectionChange : avec un fichier ce serait encore plus clair

image

J'ai plus 3600 partitions sur des fichiers PDF, avec des champs contenants des titres de partitions et dans la ligne de dessous le nom du compositeur. Le problème est que cette seconde ligne est, quelques fois, mal renseignée. Par exemple, on peut trouver le musicien qui la joue ou des infos farfelues. C'est pourquoi, je voudrais supprimer cette seconde ligne.

Pour ce faire, je copie la page PDF et je la colle dans une feuille Excel. Ensuite avec ctrl+F, Police, Taille 10 je "cherche tout" puis ctrl-A lorsque toutes mes occurrences sont sélectionnées, je ferme la boîte "Chercher remplacer" et je copie tous les champs sélectionnés. Je colle l'ensemble dans une autre feuille. Vu le nombre de partitions, je voudrais automatiser ces dernières opérations, par une macro, mais je n'obtiens pas le résultat escompté.

J'ai parfois l'impression que je veux toujours faire plus compliqué que ce que la personne demande

connais-tu la commande InputBox qui te permettra d'insérer des données saisies les unes en dessous des autres

Je ne vois pas que vient faire le CTRL F Rechercher; sinon l'enregistreur de macro, te donne le code de ce que tu veux faire.

Autre possibilité : s'approprier le code du rechercher / remplacer : https://excel-malin.com/tutoriels/vba-fonctions/replace/

Désolé pour les problèmes que je pose.

Là, il faut que j'aille "faire le son" avec mon groupe, nous jouons dans 3/4 d'heure.

Merci encore et bonne soirée

bonjour, en excel 2010, on ne peut pas faire grand chose avec de PDFs, je pense que c'est à partir d'Excel 2019.

Avec celle, on peut lire le contenu (partiel) oubien avec Acrobat, autrement, ... ???

Avez-vous un fichier pdf représentatif comme ca pour éxperimenter ?

titres-parts-jazz.pdf

Devant mon manque de clarté, je vous joins à mon message un exemple des fichiers PDF et un fichier Excel décrivant ce que je souhaite obtenir. Là, je l’ai fait « à la main », mais vu le grand nombre de titres (plus de 3 600) je souhaiterais que la plupart des opérations (sinon toutes ,o) soient réalisées par macro.

Merci pour votre aide

re,

je ne sais pas si je l'ai bien compris, mais est-ce ceci ?

Sub Font_2_E()
     '**************************************
     'tous les cellules avec font.size = 8 de la colonne E
     '**************************************

     Dim aOut10, aOut8, c, ptr

     With Sheets("Phase 1")
          For Each c In .Range("E1:E" & .Range("E" & Rows.Count).End(xlUp).Row).Cells     'la plage dans laquelle on cherche
               If Len(c.Value) > 0 Then
                    If c.Font.Size >= 10 Then
                         ptr10 = ptr10 + 1   'incrementer pointer
                         If ptr10 = 1 Then ReDim aOut10(1 To 1) Else ReDim Preserve aOut10(1 To ptr10)     'ajuster ce vecteur
                         aOut10(ptr10) = c.Value     'assigner derniere valeur
                    Else
                         ptr8 = ptr8 + 1     'incrementer pointer
                         If ptr8 = 1 Then ReDim aOut8(1 To 1) Else ReDim Preserve aOut8(1 To ptr8)     'ajuster ce vecteur
                         aOut8(ptr8) = c.Value     'assigner derniere valeur
                    End If
               End If
          Next
     End With

     MsgBox Join(aOut8, vbLf), , "les size <10 de la colonne E"
     MsgBox Join(aOut10, vbLf), , "les size >=10 de la colonne E"
End Sub

Génial !

Merci. Mais... comment puis-je faire pour récupérer ces données épurées ?

re,

la macro est adaptée et le résultat est dans les colonne A:B de phase 3

Mille mercis, c'est très exactement ce que je voulais obtenir

Rechercher des sujets similaires à "macro rechercher remplacer ctrl"