[Excel] Macro : consolider 2 fich. en param.
Résolu/Fermé
Arn's
Messages postés
23
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
26 août 2009
-
20 août 2009 à 15:49
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 - 21 août 2009 à 18:44
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 - 21 août 2009 à 18:44
A voir également:
- [Excel] Macro : consolider 2 fich. en param.
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
10 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
20 août 2009 à 16:55
20 août 2009 à 16:55
Bonjour,
En déclarant Classeur1 et Classeur2 en variables globales du module, elles peuvent être utilisées par toutes les fonctions du module.
;o)
En déclarant Classeur1 et Classeur2 en variables globales du module, elles peuvent être utilisées par toutes les fonctions du module.
;o)
Arn's
Messages postés
23
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
26 août 2009
7
20 août 2009 à 17:26
20 août 2009 à 17:26
Elles sont déjà déclarées en variables globales. Je pense que ce n'est pas le problème.
Je me suis mal exprimé, Consolidate est une méthode, et pas une fonction.
Je veux simplement consolider deux fichiers dont je ne connais pas le nom.
Ces deux noms sont stockés dans deux variables : "Classeur1" et "Classeur2".
En plus, "Classeur1" et "Classeur2" contiennent le chemin absolu (U:\MonChemin\Fichier1]), et pas le chemin relatif (Fichier1).
N'hésitez pas à me poser des questions si vous ne comprenez pas.
Je me suis mal exprimé, Consolidate est une méthode, et pas une fonction.
Je veux simplement consolider deux fichiers dont je ne connais pas le nom.
Ces deux noms sont stockés dans deux variables : "Classeur1" et "Classeur2".
En plus, "Classeur1" et "Classeur2" contiennent le chemin absolu (U:\MonChemin\Fichier1]), et pas le chemin relatif (Fichier1).
N'hésitez pas à me poser des questions si vous ne comprenez pas.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
20 août 2009 à 21:03
20 août 2009 à 21:03
Bonjour,
C'est ou que cela ne fonctionne pas ?
C'est ou que cela ne fonctionne pas ?
Arn's
Messages postés
23
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
26 août 2009
7
20 août 2009 à 21:35
20 août 2009 à 21:35
A l'exécution de ce code :
J'obtiens un message d'erreur : impossible d'ouvrir le fichier. (C'est normal, il s'agit de chemins absolus.)
Mais, même s'il s'agissait de chemins relatifs, est-ce la bonne syntaxe pour intégrer dans ces lignes des variables qui contiennent chacune un nom de fichier ?
Selection.Consolidate Sources:=Array( _ "'U:\MonChemin\[Classeur1]Feuil3'!A:C" _ , _ "'U:\MonChemin\[Classeur2]Feuil3'!A:C" _ ), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
J'obtiens un message d'erreur : impossible d'ouvrir le fichier. (C'est normal, il s'agit de chemins absolus.)
Mais, même s'il s'agissait de chemins relatifs, est-ce la bonne syntaxe pour intégrer dans ces lignes des variables qui contiennent chacune un nom de fichier ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
20 août 2009 à 22:56
20 août 2009 à 22:56
Bonjour,
J'ai un sérieux doute car la fonction Cosolidate est utiliser pour consolider les données, en utilisant la fonction SUM.; alors que vous voulez intégrer un nom de fichier ?
J'ai un sérieux doute car la fonction Cosolidate est utiliser pour consolider les données, en utilisant la fonction SUM.; alors que vous voulez intégrer un nom de fichier ?
Arn's
Messages postés
23
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
26 août 2009
7
21 août 2009 à 12:41
21 août 2009 à 12:41
Oui, Consolidate permet de consolider des données. Ces données sont contenues dans les deux classeurs que je veux manipuler.
Si je savais à l'avance comment s'appellent ces deux classeurs (Fichier1.xls et Fichier2.xls, par exemple), j'aurais écrit ceci :
Mais je voudrais remplacer dans le code ci-dessus Fichier1.xls et Fichier2.xls par des variables qui contiennent les noms des fichiers désirés.
Comment faire ?
Si je savais à l'avance comment s'appellent ces deux classeurs (Fichier1.xls et Fichier2.xls, par exemple), j'aurais écrit ceci :
Selection.Consolidate Sources:=Array( _ "'U:\MonChemin\[Fichier1.xls]Feuil3'!A:C" _ , _ "'U:\MonChemin\[Fichier2.xls]Feuil3'!A:C" _ ), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Mais je voudrais remplacer dans le code ci-dessus Fichier1.xls et Fichier2.xls par des variables qui contiennent les noms des fichiers désirés.
Comment faire ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
21 août 2009 à 12:59
21 août 2009 à 12:59
Salut,
Je n'ai pas testé... Peut être ouvrir les fichiers avant de lancer cette procédure.
Dim NOMFICH As String, CHEMIN1 As String
CHEMIN1 = "U:\MonChemin\"
NOMFICH = CHEMIN1 & classeur1
Workbooks.Open Filename:=NOMFICH
NOMFICH = CHEMIN1 & classeur2
Workbooks.Open Filename:=NOMFICH
Windows("nom_du_fichier_qui_contient_ta_macro").Activate
Workbooks.Open fileName:= _
"U:\MonChemin\Synth.xls"
'(C'est le fichier de synthèse dans le quel je veux faire ma consolidation.)
Selection.Consolidate Sources:=Array( _
"'U:\MonChemin\[Classeur1]Feuil3'!A:C" _
, _
"'U:\MonChemin\[Classeur2]Feuil3'!A:C" _
), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Je n'ai pas testé... Peut être ouvrir les fichiers avant de lancer cette procédure.
Dim NOMFICH As String, CHEMIN1 As String
CHEMIN1 = "U:\MonChemin\"
NOMFICH = CHEMIN1 & classeur1
Workbooks.Open Filename:=NOMFICH
NOMFICH = CHEMIN1 & classeur2
Workbooks.Open Filename:=NOMFICH
Windows("nom_du_fichier_qui_contient_ta_macro").Activate
Workbooks.Open fileName:= _
"U:\MonChemin\Synth.xls"
'(C'est le fichier de synthèse dans le quel je veux faire ma consolidation.)
Selection.Consolidate Sources:=Array( _
"'U:\MonChemin\[Classeur1]Feuil3'!A:C" _
, _
"'U:\MonChemin\[Classeur2]Feuil3'!A:C" _
), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Arn's
Messages postés
23
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
26 août 2009
7
21 août 2009 à 13:21
21 août 2009 à 13:21
Nan, en fait je viens de comprendre ce qui n'allait pas (ça fait un bout de temps que je suis dessus) :
Dans ce bout de code :
Il fallait d'une part, pour interpréter les variables, écrire :
(avec des guillemets et des & au bon endroit, ce qui est loin d'être évident.)
Et d'autre part, écrire C1:C3 pour dire que je voulais les trois premières colonnes, au lieu de A:C :
Merci de t'être penché sur mon problème, en tous cas. (Une fois de plus.)
Même si ce n'est pas toi qui m'a apporté la solution, je trouve ça vraiment sympa d'aider les gens comme ça, j'admire.
Dans ce bout de code :
Selection.Consolidate Sources:=Array( _ "'U:\MonChemin\[Classeur1]Feuil3'!A:C" _ , _ "'U:\MonChemin\[Classeur2]Feuil3'!A:C" _ ), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Il fallait d'une part, pour interpréter les variables, écrire :
Selection.Consolidate Sources:=Array( _ "'U:\MonChemin\[" & Classeur1 & "]Feuil3'!A:C" _ , _ "'U:\MonChemin\[" & Classeur2 & "]Feuil3'!A:C" _ ), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
(avec des guillemets et des & au bon endroit, ce qui est loin d'être évident.)
Et d'autre part, écrire C1:C3 pour dire que je voulais les trois premières colonnes, au lieu de A:C :
Selection.Consolidate Sources:=Array( _ "'U:\MonChemin\[" & Classeur1 & "]Feuil3'!C1:C3" _ , _ "'U:\MonChemin\[" & Classeur2 & "]Feuil3'!C1:C3" _ ), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Merci de t'être penché sur mon problème, en tous cas. (Une fois de plus.)
Même si ce n'est pas toi qui m'a apporté la solution, je trouve ça vraiment sympa d'aider les gens comme ça, j'admire.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
21 août 2009 à 13:24
21 août 2009 à 13:24
hum hum euh Et Polux et pingu ils puent du c_l ???
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
21 août 2009 à 14:18
21 août 2009 à 14:18
Bonjour pijaku,
Je ne sais pas se qu'il faut penser de votre message ..... c'est pas bien beau.
Je ne sais pas se qu'il faut penser de votre message ..... c'est pas bien beau.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
>
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
21 août 2009 à 15:06
21 août 2009 à 15:06
Bonjour,
Il ne faut surtout rien penser de mal, je faisais juste remarquer qu'il m'avait remercié mais vous avait oublié tous les 2. Il a d'ailleurs rectifier cet oubli.
C'est pas très poli, mais chez nous c'est tombé dans le langage familier.
Excuse moi si je t'ai offensé d'une quelconque manière, ça partait en tous cas d'un bon sentiment.
Il ne faut surtout rien penser de mal, je faisais juste remarquer qu'il m'avait remercié mais vous avait oublié tous les 2. Il a d'ailleurs rectifier cet oubli.
C'est pas très poli, mais chez nous c'est tombé dans le langage familier.
Excuse moi si je t'ai offensé d'une quelconque manière, ça partait en tous cas d'un bon sentiment.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
21 août 2009 à 15:22
21 août 2009 à 15:22
Merci pijaku.
Au fait, c'est ou chez vous ?
Au fait, c'est ou chez vous ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
>
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
21 août 2009 à 15:43
21 août 2009 à 15:43
Et voilà, on y vient... Après cette histoire nous allons encore passer pour des demeurés...(je plaisante) Je suis du Pas de Calais!!!
Bon continuons, s'il le faut, en MP avant de se faire gronder...
Bon continuons, s'il le faut, en MP avant de se faire gronder...
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
21 août 2009 à 18:44
21 août 2009 à 18:44
Merci pijaku, c'est parfait, en plus il y a le profil.
A une prochaine.
A une prochaine.
Arn's
Messages postés
23
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
26 août 2009
7
21 août 2009 à 13:31
21 août 2009 à 13:31
Non, c'est vrai. Merci à eux aussi.