Copier/coller fonction liste déroulante

Fermé
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 - 21 oct. 2014 à 10:16
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 - 27 oct. 2014 à 14:25
Bonjour,

C'est déjà plus ma première question sur ce forum et je tiens à vous remercier pour votre aide et les nombreuses heures (journées?) d'incompréhension que vous m'avez épargnées.



Je reviens avec un nouveau challenge:

L'histoire commence avec un fichier macro (appelons-le fichier M) sur lequel il y a les boutons de macro et une liste déroulante comprenant les mois de l'année. D'un autre côté il y a une vingtaine de fichiers (appelons-les fichiers X,Y,Z,...) impatients de connaître le mois sélectionné dans la liste déroulante pour effectuer alors des copier/coller de valeurs rangées en colonne.

Et voici l'objectif. Je sélectionne le mois dans la liste déroulante chez fichier M et exécute la macro qui prend en compte le mois sélectionné, ouvre les fichiers X,Y,Z (un par un ne soyons pas trop gourmand), sélectionne l'onglet "par année", va chercher la colonne qui suit la colonne du mois sélectionné (et oui il y a un petit truc ici mais avec la fonction offset je pense que c'est que du détail), il sélectionne donc cette colonne, la copie/colle dans un autre onglet (Update) du même fichier puis tranquilement s'en va faire la même démarche dans le fichier suivant.


Alors voilà, autant j'ai quelques idées sur les fonctions à utiliser (comme offset ou un simple copypaste). Mais je n'ai rien trouvé sur la toile qui s'approche assez de ce que je veuille faire pour pouvoir m'en inspirer. Lä, je suis dans le flou le plus total.

Je conçois à peu près la macro ainsi:

1) ouverture du premier fichier destinataire
2) check de la liste déroulante dans le fichier M et sélection de la colonne +1 dans le fichier destinataire
3) Copie/colle cette colonne dans un onglet déjà préparé
4) Recommencer


Je me débrouillerai pour tout ce qui concerne la fermeture du fichier destinataires après le copier/coller, et autres détails qui sont pas liés directement à cette histoire de copier/coller en fonction de la liste déroulante.

Ma première question est: est-ce possible? (oui, parfois j'en doute)
Et alors comment?

Comme d'habitude, l'objectif est toujours d'apprendre. Donc n'hésitez pas à me parler avec plein de détail pour que je comprenne les lignes de code et ce qui se passe.



Cordialement,
A voir également:

12 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
21 oct. 2014 à 12:18
Bonjour Koalacid, bonjour le forum,

Oui ça devrait être possible mais il faudrait au moins deux fichiers exemple. Celui qui contient la macro (le fichier source) et un fichier destination. Juste avec quelques données pour que l'on voit la structure et que l'on code avec une base très semblable au fichier original. Ensuite il faut savoir le chemin d'accès complet des différents fichiers. Si ils sont tous dans le même dossier que le fichier source, ce n'est pas la peine...

Attendant ton retour.
0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
21 oct. 2014 à 13:47
Hello ThauTheme,


Tout d'abord merci pour ton soutien!


Voici les liens des fichiers:

Le fichier avec les data:
https://www.cjoint.com/?DJvnXkSuDUh

et le fichier Macro
https://www.cjoint.com/?DJvnYCjipZp

J'ai rajouté un cadre avec l'explication.

A savoir qu'en réalité il y a une bonne vingtaine de fichier X,Y,Z d'où la boucle.


Cordialement,
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
21 oct. 2014 à 22:12
Bonsoir KoalaCid, bonsoir le forum,

Désolé, mais aujourd'hui je n'ai pas eu le temps. Je te promet de m'y pencher dès demain...
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 oct. 2014 à 10:30
Bonjour Koakacid, bonjour le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous :
Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim MR As String 'déclare la variable MR (Mois Recherché)
Dim SF As Object 'déclare la variable SF (Système de Fichiers)
Dim DT As Object 'déclare la variable DT (Dossier de Travail)
Dim FS As Object 'déclare la variable FS (FichierS)
Dim F As Object 'déclare la variable F (Fichier)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim O1 As Object 'déclare la variable O1 (Onglet 1)
Dim O2 As Object 'déclare la variable O2 (Onglet 2)
Dim R As Range 'déclare la variable R (Recherche)
Dim CP As Byte 'déclare la variable CP (Colonne Promo)
Dim CNP As Byte 'déclare la variable CNP (Colonne Non Promo)

Application.ScreenUpdating = False 'masque les reafraîchissements d'éran
Set CS = ThisWorkbook 'définit la classeur source CS
MR = CS.Sheets("Liste Déroulante").Range("D4").Value 'définit le mois recherché
Set SF = CreateObject("Scripting.Filesystemobject") 'définit le système de fichier SF
Set DT = SF.GetFolder(ThisWorkbook.Path) 'définit le dossier de travail DT
Set FS = DT.Files 'définit l'ensemble des fichier FS contenus dans le dossier de travail
For Each F In FS 'boucle sur tous les fichier F de l'ensemble FS
If Right(F.Name, 5) = ".xlsx" Then 'condition 1 : si l'extension du fichier est ".xlsx"
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CD = Workbooks(F.Name) 'définit le classeur destination CD (génère une erreur si ce classseur né st pas ouvert)
If Err <> 0 Then 'condition 2 : si une erreur a été générée
Err.Clear 'efface l'erreur
Workbooks.Open (F) 'ouvre le fichier F
Set CD = ActiveWorkbook 'définit le classeur destination CD
End If 'fin de la condition 2
Set O1 = CD.Sheets("Vol Prev") 'définit l'onglet O1 (génère une erreur si cet onglet n'existe pas)
If Err <> 0 Then 'condition 3 : si une erreur a été générée
Err.Clear 'efface l'erreur
CD.Close 'ferme le classeur CD
GoTo suite 'va à l'étiquette "suite"
End If 'fin de la condition 3
On Error GoTo 0 'annule la gestion des erreurs
Set O2 = CD.Sheets("Update Vol") 'définit l'onglet O2
Set R = O1.Rows(5).Find(MR, , xlValues, xlWhole) 'définit la recherche R
If Not R Is Nothing Then 'condition 4 : si il existe au moins une occurrence trouvée
CNP = R.Column 'définit la colonne non promo CNP
CP = R.Column + 1 'définit la colonne promo CP
Else 'sinon
MsgBox "Mois non trouvé !": Exit Sub 'message, sort de la procédure
End If 'fin de la condition 4
O1.Range(O1.Cells(8, CP), O1.Cells(18, CP)).Copy 'cope les valeurs de la colonne promo du mois recherché dans l'onglet O1
O2.Range("C8").PasteSpecial (xlPasteValues) 'colle les valeurs dans la cellule C8 de l'onglet O2
O2.Range("B8:B18").Copy 'copie les données calculée de la plage B8:B18 de l'onglet O2
O1.Cells(8, CNP).PasteSpecial (xlPasteValues) 'colle les valeurs dans la ligne 8 de la colonne non promo du mois recherché
Application.CutCopyMode = False 'supprime le clignotement des cellules lié au "copier"
CD.Close SaveChanges:=True 'ferme le classeur destination en enregistrant les changements
End If 'fin de la condition 1
suite: 'étiquette
Next F 'prochain fichier de l'ensemble des fichier FS
Application.ScreenUpdating = True 'affiche les reafraîchissements d'éran
End Sub


En gros la macro fait les choses suivantes :
* boucle pour l'ouverture des tous les fichiers dans le même dossier que le fichier source.xlsm ayant une extension .xlsx. Voir si ce critère convient ?
* une fois le fichier ouvert, si ce dernier ne contient pas d'onglet nommé Vol Prev il est refermé et on passe au fichier suivant...
* sinon, on copie la colonne promo du mois recherchée et on la colle dans la cellule C8 de l'onglet Update Vol.
* On copie alors la plage B8:B18 de ce même onglet pour la copier dans la colonne non promo du mois recherché.
* en enregistre le classeur destination et on le ferme
* on passe au fichier suivant...

Le seul soucis que j'ai rencontré c'est dans ton exemple, les calculs ne se font pas ? As-tu une explication ?
Je te recommande de créer un dossier de test où tu y mettras le fichier attaché et une copie de un ou deux fichiers destination. Tu fais tourner et regardes où ça plante...

Arf ! Je suis tout nouveau dans ce forum et je ne sais pas comment joindre un fichier. Peux-tu me l'expliquer m6eme si normalement le code est suffisant...


0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
22 oct. 2014 à 13:37
Hello ThauTheme,

D'abord merci pour ton aide! Ca c'est un code!

Voici le lien quej'ai utilisé pour les fichiers.

https://www.cjoint.com/

Je vais faire les test cet après-midi et tenter de comprendre le maximum de chose (j'espère tout étant optimiste de nature :) ). Entre-temps, j'ai un peu avancé sur ce problème et découvert une solution alternative qui permet de simplifier le process. Par contre j'aurais toujours besoin de ton code, ne t'inquiète pas.


Cordialement,
0

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

Posez votre question
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 oct. 2014 à 13:47
Bonjour Koalacid, bonjour le forum,

Ok j'attends ton retour. Merci pour le lien...
Le fichier :
https://www.cjoint.com/?DJwnZDOj23k
0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
22 oct. 2014 à 14:52
Hello ThauTheme,


J'ai donc recopier et adpater la macro en fonction des noms des onglets et des plages concernées.

Elle fonctionne sans bug mais n'arrive pas à retrouver le mois. Je ne comprend pas pourquoi.

Le message d'erreur: Mois non trouvé que la macro lance dans ce cas s'affiche à chaque fois.


D'où peut venir l'erreur? Sur quel onglet le code lance-t-il la recherche du mois?


Cordialement,
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 oct. 2014 à 15:25
Bonjour koalacid, bonjour le forum

Oui j'ai oublié de te prévenir, désolé. Je me suis rendu compte que la liste des mois dans l'onglet Liste Déroulante ne correspondait pas avec les mois du fichier destination de l'exemple à cause de l'espace entre P et 14. J'ai donc rajouté un espaces dans les 12 cellules pour que ça marche. Il faudra les noms dans la liste soit identiques au noms contenus dans la ligne 5 du dossier Vol Prev. J'espère que tu as été cohérent dans tous les fichiers et que c'est partout pareil avec la même structure...

J'attends ta réponse...
0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
22 oct. 2014 à 15:55
FOUND IT!

L'erreur était forcément simplissime. Entre les fichiers que je t'avais fait parvenir et ceux que j'utilise pour la macro et il y a des différences (confidentialité oblige j'ai dû faire de nouveaux fichiers).

Du coup il y avait une différence sur la ligne dans laquelle la macro recherchait le mois. J'ai donc changé cette ligne et devine quoi?

Et bin ça fonctionne!

ThauTheme, je te voue un culte!


Bon reste plus qu'à bien intégrer la macro à mes fichiers. Je te remercie pour ton aide!

Avant, j'ai juste une dernière question. A quoi sert le fait d'insérer ces lignes au début:

"Dim as...."


Cordialement,
0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
22 oct. 2014 à 16:00
Enfin, je précise un peu ma question:

Comment fonctionne cette description des variables de la macro?
Si je voulais changer quelque chose comme le classeur source pour que ce soit un autre fichier excel, il faut faire ça à cet endroit?
0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
22 oct. 2014 à 16:25
J'ai encore une autre question. Si je veux changer la définition d'un onglet, par exemple si je veux que le O2 ne soit pas sur le classeur destinataire mais sur le classeur source (celui aec la liste déroulante), est-ce que je peux supprimer la phase du code qui définit O2 comment étant un onglet appelé Update Vol et rajouter un ligne tout au début?
Tel que suit:

Set O2 = CS.Sheets("Machèremaman") 'définit l'onglet 2
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 oct. 2014 à 19:12
Pour les déclarations de variable regarde l'excellent travail de MDF ici :
http://www.mdf-xlpages.com/modules/publisher/item.php?itemid=51&keywords=variables
0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
22 oct. 2014 à 17:11
Hello, je t'avais dit que j'avais modifié le process pour le rendre plus cohérent.

Voici le nouveau code qui devrait fonctionner (je te laisse deviner la suite...):

Sub Macro1()

Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim MR As String 'déclare la variable MR (Mois Recherché)
Dim SF As Object 'déclare la variable SF (Système de Fichiers)
Dim DT As Object 'déclare la variable DT (Dossier de Travail)
Dim FS As Object 'déclare la variable FS (FichierS)
Dim F As Object 'déclare la variable F (Fichier)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim O1 As Object 'déclare la variable O1 (Onglet 1)
Dim O2 As Object 'déclare la variable O2 (Onglet 2)
Dim R1 As Range 'déclare la variable R1 (Recherche 1)
Dim R2 As Range 'déclare la variable R2 (Recherche 2)
Dim CP As Byte 'déclare la variable CP (Colonne Promo)
Dim CNP As Byte 'déclare la variable CNP (Colonne Non Promo)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set CS = ThisWorkbook 'définit la classeur source CS
Set O1 = CS.Sheets("Vol Non Promo") 'définit l'onglet O1
Set R1 = O1.Rows(4).Find(MR, , xlValues, xlWhole) 'définit la recherche R1
If Not R1 Is Nothing Then 'condition A : si il existe au moins une occurrence trouvée
CNP = R1.Column 'définit la colonne non promo CNP
Else 'sinon
MsgBox "Mois non trouvé !": Exit Sub 'message, sort de la procédure
End If 'fin de la condition A
MR = CS.Sheets("Macro").Range("G10").Value 'définit le mois recherché
Set SF = CreateObject("Scripting.Filesystemobject") 'définit le système de fichier SF
Set DT = SF.GetFolder(ThisWorkbook.Path) 'définit le dossier de travail DT
Set FS = DT.Files 'définit l'ensemble des fichier FS contenus dans le dossier de travail
For Each F In FS 'boucle sur tous les fichier F de l'ensemble FS
If Right(F.Name, 5) = ".xlsm" Then 'condition 1 : si l'extension du fichier est ".xlsm"
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CD = Workbooks(F.Name) 'définit le classeur destination CD (génère une erreur si ce classseur né st pas ouvert)
If Err <> 0 Then 'condition 2 : si une erreur a été générée
Err.Clear 'efface l'erreur
Workbooks.Open (F) 'ouvre le fichier F
Set CD = ActiveWorkbook 'définit le classeur destination CD
End If 'fin de la condition 2
Set O2 = CD.Sheets("Vol_SKU_COLS_SAISI") 'définit l'onglet O2 (génère une erreur si cet onglet n'existe pas)
Set R2 = O2.Rows(4).Find(MR, , xlValues, xlWhole) 'Défini la recherche sur l'onglet 02
If Not R2 Is Nothing Then 'condition B : si il existe au moins une occurrence trouvée
CNP = R2.Column 'définit la colonne non promo CNP
CP = R2.Column + 1 'définit la colonne promo CP
If Err <> 0 Then 'condition 3 : si une erreur a été générée
Err.Clear 'efface l'erreur
CD.Close 'ferme le classeur CD
GoTo suite 'va à l'étiquette "suite"
End If 'fin de la condition 3
On Error GoTo 0 'annule la gestion des erreurs
O1.Range(O1.Cells(7, CNP), O1.Cells(86, CNP)).Copy 'copie les valeurs de la colonne non promo du mois recherché dans l'onglet O1
O2.Range(O2.Cells(7, CNP), O2.Cells(86, CNP)).PasteSpecial (xlPasteValues) 'colle les valeurs dans la colonne CNP de l'onglet 02
Application.CutCopyMode = False 'supprime le clignotement des cellules lié au "copier"
CD.Close SaveChanges:=True 'ferme le classeur destination en enregistrant les changements
End If 'fin de la condition 1
suite: 'étiquette
Next F 'prochain fichier de l'ensemble des fichier FS
Application.ScreenUpdating = True 'affiche les reafraîchissements d'éran
End Sub


Le process est le suivant. Au lieu de copier d'un fichier source vers au fichier dans un onglet où se situe un calcul qui amène un nouveau résultat à copier dans l'onglet B (shéma réduit à sa simplicité élémentaire de ce que je disais plus haut), voici le nouveau process.

Je prends les infos de tous les fichiers et les colle dans un fichier source, fait mes calculs et obtient le résultat final que je dois donc coller en fonction du mois. C'est à ce moment qu'interviens le code inscrit dans ce poste.

Habile visuel que tu es, tu remarqueras la subtile patte de ton code. (quasiment tout sinon tout). J'ai juste interverti l'histoire des onglets.

Bref. Après re-re-relecture du code, j'exécute la macro d'un f5 confiant.

----> Pèf erreur sur la dernière ligne :

Next F 'prochain fichier de l'ensemble des fichier FS

Un message d'erreur: "Next sans For"

Après vérif il n'y en avait pas dans ton code. Comment as-tu fait pour corrompre ton VBE sans ce "for"????

Je nage....


Cordialement,
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 oct. 2014 à 19:10
Bonsoir Koalacid, bonsoir le forum,

Moi aussi je nage car sans pourvoir tester avec deux fichiers exemple concrets (tu peux anonymiser sans pour cela modifier la structure) il est difficile de comprendre où tu veux en venir.

Je reprends ton code...
* Premier point :
tu lances une recherche R1 alors que le mois recherché MR n'est pas encore défini ? Plantage obligé MR=""
Solution, déplacer la ligne qui définie le mois avant la recherche :
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set CS = ThisWorkbook 'définit la classeur source CS
MR = CS.Sheets("Macro").Range("G10").Value 'définit le mois recherché
Set O1 = CS.Sheets("Vol Non Promo") 'définit l'onglet O1
Set R1 = O1.Rows(4).Find(MR, , xlValues, xlWhole) 'définit la recherche R1

* deuxième point :
Cette recherche te permet de définit la variable CNP que tu redéfinis plus loin avec la recherche R2.
Dans ce cas, à quoi sert la première recherche R1 ?

* troisième point :
Tu as changé l'extension des fichiers à rechercher. Du coup le fichier qui contient la macro fait lui aussi parti de la liste mais il ne faut pas le prendre en compte. J'ai rajouté la ligne ci-dessous pour palier ce problème :
If F.Name = CS.Name Then GoTo suite


* quatrième point :
Ce n'est pas un Next qui manque mais un End IF à la fin de :
If Not R2 Is Nothing Then...

* cinquième point :
tu définit la variable CP puis tu l'utilise pas ?

Du coup, voici le code modifié. Comme la colonne non promo CNP est définie deux fois j'ai supprimer la seconde définition. Tu adapteras...

Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim MR As String 'déclare la variable MR (Mois Recherché)
Dim SF As Object 'déclare la variable SF (Système de Fichiers)
Dim DT As Object 'déclare la variable DT (Dossier de Travail)
Dim FS As Object 'déclare la variable FS (FichierS)
Dim F As Object 'déclare la variable F (Fichier)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim O1 As Object 'déclare la variable O1 (Onglet 1)
Dim O2 As Object 'déclare la variable O2 (Onglet 2)
Dim R1 As Range 'déclare la variable R1 (Recherche 1)
Dim R2 As Range 'déclare la variable R2 (Recherche 2)
Dim CP As Byte 'déclare la variable CP (Colonne Promo)
Dim CNP As Byte 'déclare la variable CNP (Colonne Non Promo)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set CS = ThisWorkbook 'définit la classeur source CS
MR = CS.Sheets("Macro").Range("G10").Value 'définit le mois recherché
Set O1 = CS.Sheets("Vol Non Promo") 'définit l'onglet O1
Set R1 = O1.Rows(4).Find(MR, , xlValues, xlWhole) 'définit la recherche R1
If Not R1 Is Nothing Then 'condition A : si il existe au moins une occurrence trouvée
CNP = R1.Column 'définit la colonne non promo CNP
Else 'sinon
MsgBox "Mois non trouvé !": Exit Sub 'message, sort de la procédure
End If 'fin de la condition A
Set SF = CreateObject("Scripting.Filesystemobject") 'définit le système de fichier SF
Set DT = SF.GetFolder(ThisWorkbook.Path) 'définit le dossier de travail DT
Set FS = DT.Files 'définit l'ensemble des fichier FS contenus dans le dossier de travail
For Each F In FS 'boucle sur tous les fichier F de l'ensemble FS
If Right(F.Name, 5) = ".xlsm" Then 'condition 1 : si l'extension du fichier est ".xlsm"
If F.Name = CS.Name Then GoTo suite 'si le fichier est ce fichier , va à l'étiquette suite
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CD = Workbooks(F.Name) 'définit le classeur destination CD (génère une erreur si ce classseur n'est pas ouvert)
If Err <> 0 Then 'condition 2 : si une erreur a été générée
Err.Clear 'efface l'erreur
Workbooks.Open (F) 'ouvre le fichier F
Set CD = ActiveWorkbook 'définit le classeur destination CD
End If 'fin de la condition 2
Set O2 = CD.Sheets("Vol_SKU_COLS_SAISI") 'définit l'onglet O2 (génère une erreur si cet onglet n'existe pas)
If Err <> 0 Then 'condition 3 : si une erreur a été générée
Err.Clear 'efface l'erreur
CD.Close 'ferme le classeur CD
GoTo suite 'va à l'étiquette "suite"
End If 'fin de la condition 3
On Error GoTo 0 'annule la gestion des erreurs
Set R2 = O2.Rows(4).Find(MR, , xlValues, xlWhole) 'Défini la recherche sur l'onglet 02
If Not R2 Is Nothing Then 'condition B : si il existe au moins une occurrence trouvée
CP = R2.Column + 1 'définit la colonne promo CP
End If
O1.Range(O1.Cells(7, CNP), O1.Cells(86, CNP)).Copy 'copie les valeurs de la colonne non promo du mois recherché dans l'onglet O1
O2.Range(O2.Cells(7, CNP), O2.Cells(86, CNP)).PasteSpecial (xlPasteValues) 'colle les valeurs dans la colonne CNP de l'onglet 02
Application.CutCopyMode = False 'supprime le clignotement des cellules lié au "copier"
CD.Close SaveChanges:=True 'ferme le classeur destination en enregistrant les changements
End If 'fin de la condition 1
suite: 'étiquette
Next F 'prochain fichier de l'ensemble des fichier FS
Application.ScreenUpdating = True 'affiche les reafraîchissements d'éran
End Sub

0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
23 oct. 2014 à 17:51
Hello,

Désolé de répondre si tardivement, je n'ai eu le temps de m'occuper que briüvement de cette macro aujourd'hui:


Voici les liens de trois fichiers pour faire les test:

Fichier update:
https://www.cjoint.com/?0Jxr1ttcbFg

2 fichiers clients:
https://www.cjoint.com/?0Jxr3cAUA00
https://www.cjoint.com/?0Jxr3zRNJSN


Voilà j'espère que ça aidera.

De mon côté je buggue sur le problème du mois. Il ne le trouve pas et le message d'erreur s'affiche "mois non trouvé".


Cordialement,
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
23 oct. 2014 à 19:40
Bonsoir Kolacid, bonsoir le forum,

Tu ne réponds a aucun point que j'ai soulevé dans le post #13. Tu me renvoie le bébé et demm.._toi. C'est pas comme ça que je vois les choses... Si tu veux de l'aide il faut que tu fournisses des explications !
0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
24 oct. 2014 à 09:44
Pas eu le temps de m'en occuper encore, ça arrive
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
24 oct. 2014 à 12:16
Ok, j'attends...
0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
27 oct. 2014 à 14:25
Encore une fois je te remercie pour ton aide Thautheme, malheureusement ce sujet sans être résolu risque de prendre du temps et je ne veux pas abuser du tien.


Je me débrouillerai par la suite pour trouver une solution quand je pourrais m'occuper de ça.


Encore emrci pour tes réponses rapides et très intéressantes,


Cordialement,
0