fusion de feuilles dans un autre classeur mois par mois.

kalouxv

XLDnaute Nouveau
Bonjour,
Tout d'abord je suis novice en VBA, voilà ma recherche j'ai 5 classeurs nommés PLANIF P1,PLANIF P2,PLANIF P3,PLANIF P4 et PLANIF PCL ce sont des classeurs de suivi de personnels dans lesquels on retrouve les mois de l'année et une dernière feuille récapitulant les qualifications de ces mêmes personnels. Je souhaite créer un 6°classeurs nommé PLANIF ET ou chaque feuilles serait la compilations des 5 autres classeurs. C'est à dire une feuille janvier compilant les 5 feuilles janvier des 5 classeurs et ainsi de suite pour tout les mois ainsi que pour la feuille qualification.
J'ai mit un classeur nommé planif P1 qui est un des 5 classeurs (tous identique) et planif ET correspondant à la compilation.
j’espère être assez explicite, merci d'avance:):):)
 

Pièces jointes

  • planif-et.xlsm
    566.7 KB · Affichages: 51
  • planif-P1.xlsm
    160.3 KB · Affichages: 44

Bebere

XLDnaute Barbatruc
Re : fusion de feuilles dans un autre classeur mois par mois.

bonjour Kalouxv
bienvenue
tu devrais mettre quelques données et dire ce qu'il faut faire comme traitement dans les feuilles
dans classeur et il y a des formules doivent elles restées et ne traiter que la partie sans formule et que contient cette partie
 

kalouxv

XLDnaute Nouveau
Re : fusion de feuilles dans un autre classeur mois par mois.

Dans la feuille janvier de PLANIF ET, je veux que la plage A5 :AO49 de janvier de PLANIF P1 se mette à jour dans la plage A5 :AO49 de janvier PLANIF ET, que la plage A5 :AO49 de janvier de PLANIF P2 se mette à jours dans la plage A50 :AO94 de janvier PLANIF ET, que la plage A5 :AO49 de janvier de PLANIF P3 se mette à jours dans la plage A95 :AO139 de janvier PLANIF ET, que la plage A5 :AO49 de janvier de PLANIF P4 se mette à jours dans la plage A140 :AO184 de janvier PLANIF ET, que la plage A5 :AO49 de janvier de PLANIF PCL se mette à jours dans la plage A184 :AO229 de janvier PLANIF ET . Et ainsi de suite pour tout les mois.
De plus , concernant la feuille « qualification » je veux que la plage C14 :Z58 de qualification de PLANIF P1 se mette à jour dans la plage C14 :Z58 de qualification de PLANIF ET, je veux que la plage C14 :Z58 de qualification de PLANIF P2 se mette à jour dans la plage C59 :Z103 de qualification de PLANIF ET, , je veux que la plage C14 :Z58 de qualification de PLANIF P3 se mette à jour dans la plage C60 :Z148 de qualification de PLANIF ET, je veux que la plage C14 :Z58 de qualification de PLANIF P4 se mette à jour dans la plage C149 :Z193 de qualification de PLANIF ET, je veux que la plage C14 :Z58 de qualification de PLANIF PCL se mette à jour dans la plage C194 :Z238 de qualification de PLANIF ET .
Il y a des formules ainsi que des mises en formes conditionnels dont j’ai besoin aussi dans PLANIF ET.
J’ai tenté de travailler avec un seule classeur tel que PLANIF ET ou tout le personnel est regroupé mais dés que je mets en partage, je perds des fonctionnalités donc ça ne va pas.
Voilà j’espére que ces données vous iront et encore merci
:rolleyes:
 

Bebere

XLDnaute Barbatruc
Re : fusion de feuilles dans un autre classeur mois par mois.

bonjour Kalouzv
code à mettre dans un module du classeur
Code:
Public Sub reuni()
    Dim a, f, i As Byte, j As Byte, ldest As Long
    Dim WkDest As Workbook, WkSource As Workbook

    Set WkDest = ThisWorkbook
    chemin = WkDest.Path & "\"
    a = Array("planif-P1", "planif-P2", "planif-P3", "planif-P4")
    f = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre", "qualifications")
    For i = LBound(a) To UBound(a)
        Workbooks.Open Filename:=chemin & a(i) & ".xlsm"
        Set WkSource = ActiveWorkbook
        For j = LBound(f) To UBound(f)
            ldest = WkDest.Worksheets(f(j)).Range("A65536").End(xlUp).Row
                With WkSource.Worksheets(f(j))
                    If Left(f(j), 1) <> "q" Then
                        .Range("K5:AO49").Copy Destination = WkDest.Worksheets(f(j)).Range("A" & ldest + 1)
                    Else
                        .Range("C14:Z58").Copy Destination = WkDest.Worksheets(f(j)).Range("C" & ldest + 1)

                    End If
                End With
        Next j
        WkSource.Close saveChanges:=False
    Next i


End Sub
 

kalouxv

XLDnaute Nouveau
Re : fusion de feuilles dans un autre classeur mois par mois.

bonjour,
une fois le code rentré, dés que j'execute le code la partie suivante se surligne en jaune :
.Range("K5:AO49").Copy Destination = WkDest.Worksheets(f(j)).Range("A" & ldest + 1)
et un message erreur 1004 apparait.
une idée ????
merci
 

Bebere

XLDnaute Barbatruc
Re : fusion de feuilles dans un autre classeur mois par mois.

bonjour
la plage doit contenir des données.Il suffit de cliquer sur aide(fenêtre erreur) pour le savoir
tu me dis si c'est bon et je complète le code d'après ta réponse #3 (plus haut)
edit la demande pour avoir des données a été faite
 

kalouxv

XLDnaute Nouveau
Re : fusion de feuilles dans un autre classeur mois par mois.

bonsoir,
Je viens enfin je crois de trouver ou se placer le probléme:
j'ai ajouté : aprés destination et enlevé un espace dans les lignes suivantes
.Range("K5:AO49").Copy Destination = WkDest.Worksheets(f(j)).Range("A" & ldest + 1)
Else
.Range("C14:Z58").Copy Destination = WkDest.Worksheets(f(j)).Range("C" & ldest + 1)
cependant, les 1° lignes du tableau de la feuille qualification disparaissent et rien dans les autres feuilles. Et peux tu me dire si le code s'exécute automatiquement dés l'ouverture du classeur.
Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 482
Messages
2 088 768
Membres
103 956
dernier inscrit
profil72