Répétér une macro sur d'autres fichiers

Résolu
Nathalie -  
 Nathalie -
Bonjour,

Je me suis dit que ca serait une superbe idée de faire une macro pour collecter des données, mais punaise, c'est dur! :-P

J'ai un dossier dans lequel je vais stocker "n" fichiers (environ 50) de format identique mais avec des données différentes.
J'ai créé une macro qui permet de récupérer dans le fichier 1 du dossier les données des cellules C7 à O7 et de les insérer dans un autre fichier Z à la ligne 4.
Etant donné que j'ai déja beaucoup de fichier et que d'autres vont s'ajouter dans le temps, je voudrais écrire un code qui dirait: " faire la même opération sur tous les autres fichier du dossier et les insérer en dessous des données déja collées ligne 4"... mais ca je ne sais pas le faire

Mais si je savais la fairer alors lorsque j'activerais la macro je pourrais récupérer toutes les données automatiquement et surtout si je devais ajouter ou supprimer des fichiers ils seraient pris en compte.

Est ce que quelqu'un aurait une idée s'il vous plait?

Merci beaucoup par avance,

Nathalie


A voir également:

5 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour,
Une idée ?
Oui
ou plutôt une méthode! :o)

mais quelle version d'Excel?
et quel est le nom de la feuille des 50 fichiers ?
ou quel est le nom générique des 50 fichiers (par ex toto1 à toto50--> générique! toto) ?
Michel
0
Nathalie
 
Bonjour Michel,
oui plutôt une méthode :-P
Alors j'ai la version Excel 2007 et concernant le nom des fichiers ca sera un nom générique, il s'appeleront tous Score + un chiffre/nombre donc ca fera : Score1, Score 2, Score 3...
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,
rappel de ma demande:
Quel est le nom de la feuille dans les fichiers "scoreN..." ?
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
et voilà...
https://www.cjoint.com/?3IrqtHUfLYS

edit:
lire C7:O7 au lieu de C7:O9 !!!! :-(
0
Nathalie
 
Hello Michel,
Merci pour les réponses si rapides et le gros coup de pouce :)
J'ai vu le document en PJ, par contre j'ai pas mon PC sur lequel j'ai fait la macro mais je le récupère bientot, j'ai hate de tester ca.
Le nom de la feuille c'est PPC2011
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour
il faudra télécharger le pièce jointe puis ouvrir le zip et non l'ouvrir directement; pour le nom de feuille, c'est à changer dans les déclarations de constantes
0
Nathalie
 
Bonjour Michel,
Ouaouuu, incroyable ce code.
Je déchiffre tout ça ce matin en faisant les modifs sur les noms et je vous dirais dans la journée comment ca se passe.
Merci beaucoup en tout cas!
Bonne journée et à plus tard
0
Nathalie
 
Hello Michel,

Punaise vous êtes un génie, ca marche super bien!! Je suis trop contente!! C'est incroyable!
Je vais juste essayer de récupérer aussi le nom des fichiers (score 1, score 2) pour les mettre en début des lignes extraites parce que sinon j'ai plein de données mais je ne sais pas à quoi elles correspondent.
Je vais essayer de m'inspirer du code que vous m'avez fourni.

Merci beaucoup!!
Bien cordialement,
Nathalie
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nathalie
 
Tout fonctionne. J'ai réussi à rajouter les noms comme souhaité.

par contre dans le classeurs final qui collecte les données j'obtiens des données que j'aimerais voir apparaitre en %.
J'ai marqué un code mais il ne fonctionne pas:

Sub ApplyPercentageFormat()

'Pour la plage sélectionnée : appliquer le format pourcentage

For Each Requete In Range("C4:O100")
With Requete
If Right(.Value, 1) = "%" Then
Fichier = Left(.Value, Len(.Value) - 1)
If IsNumeric(myValue) Then
'Format pourcentage* avec deux décimales
.NumberFormat = "#,##0.00%"
.Value = myValue / 100
End If
End If
End With
End Sub

End Sub

Je l'ai mis dans la page compilation à la suite du code que vous m'avez créé.
Vous voyez ce qui cloche? je pense que c'est le For each REQUETE
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
effectivement car tu as maintenant un tableau excel.... requete est ambigu, utilise plutôt cellule
d'autre part quelle est cette variable "myvalue" ?

Mais travaille plutôt sur tes colonnes puisque normalement les données doivent être du m^me type dans chaque colonne
tu repères ces colonnes et tu appliques ton format
nota= si tu met au format "#,##0.00%" pour quoi divise tu par cent ?

ou tu pourrais t'inspirer de cà (si j'ai bien pigé tu as des données sous cette forme: 123,45% de type texte?)
si oui
With Cells(ligne, colonne)
.Value = CSng(.Value)
.NumberFormat = "#,##0.00%"
End With
0
Nathalie
 
Punaise,
Bon aucun des deux code ne marche.
En fait il ne se passe rien comme si le code n'était pas relié à la feuille active de destination (celle qui collecte les données).
En fait mes données arrivent en format:
0.9311 et moi je voudrais 93,11%
Est ce qu'il faut placer le code à un endroit spécifique? moi je l'ai placé tout à la fin du code dans compilation
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
met un extrait de ta feuille de destination avec les arrivées (sans données confidentielles)
sur
https://www.cjoint.com/
et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse
0
Nathalie
 
hello Michel:
http://cjoint.com/?0IuoygmExqo

il y a deux onglets. Dans le premier j'ai mis un exemple des données récupérées en arrivée et dans le deuxième onglet le code utilisé.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Je n'ai pas vu de code dans le 2° onglet....

dans l'attente
0