doggerip
XLDnaute Nouveau
Bonjour à tous,
Cela fait quelques temps que je travail sur un modèle de planning Annuel - Hebdomadaire .
Je coince sur une macro pour comparer les données d'un planning annuel avec une liste de données sur une autre feuille et ensuite copier sur la troisième feuille qui ne comporte pas les même dimensions .
Pour plus de détails
J'ai essayé avec des tableaux et Boucles mais à chaque fois je coince .
Voici mon dernière essai de code
Cela fait quelques temps que je travail sur un modèle de planning Annuel - Hebdomadaire .
Je coince sur une macro pour comparer les données d'un planning annuel avec une liste de données sur une autre feuille et ensuite copier sur la troisième feuille qui ne comporte pas les même dimensions .
Pour plus de détails
Sur le Planning annuel j'ai une plage de cellule avec des données
Je souhaite les comparés avec la colonne Cellule planning annuel de la feuille données
Si la valeur est trouvé dans la colonne Cellule planning annuel alors j’inscris dans la semaine la correspondance de Cellule Haut et Cellule pour chaque personne (ou numéro ici)
Je souhaite les comparés avec la colonne Cellule planning annuel de la feuille données
Si la valeur est trouvé dans la colonne Cellule planning annuel alors j’inscris dans la semaine la correspondance de Cellule Haut et Cellule pour chaque personne (ou numéro ici)
J'ai essayé avec des tableaux et Boucles mais à chaque fois je coince .
Voici mon dernière essai de code
VB:
Sub maj_semaines()
Dim Fdonnees, annuel, i As Integer, nbco, plage, numligsem, f, g, h
Dim cellsemaine, ColonneA, nblignA, anarea, Celan, semarea, Celsem
Dim tabdonnees()
Application.DisplayAlerts = False
'Création des variables pour les feuilles
Set annuel = Worksheets("Congés et HotLine")
Set Fdonnees = Worksheets("Donnees")
Set Asheet = ActiveSheet
Asheetname = ActiveSheet.Name
'==========================================================
'========= RAZ de la couleur de la colonne A ==============
'==========================================================
With Range("A3:B52").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
PatternTintAndShade = 0
End With
'Je boucle sur les lignes des semaine du planning annuel
For numligsem = 11 To 156 Step 29
'J'attribut la plage qui va lire les semaines sur le calendrier annuel
Set plage = annuel.Range(annuel.Cells(numligsem, 2), annuel.Cells(numligsem, 63))
'Je compte le nombre de colonnes de cette plage
nbco = plage.Columns.Count
'Je boucle sur les colonnes en partant de la fin
For co = nbco To 2 Step -1
'Si la colonne = au nom de la feuille en cour est trouvé alors
If plage.Cells(1, co).Value = Asheetname Then
'J'arribut les dates des 5 premiers jours à la semaine de la feuille*
Asheet.Cells(2, 3).Value = annuel.Cells(numligsem + 1, co + 1).Value
Range("C2").AutoFill Destination:=Range("C2:G2"), Type:=xlFillDefault
'jusque la pas de souci mais après ...
'Attribution la plage à copier dans la feuille annuel
Set anarea = annuel.Range(annuel.Cells(numligsem + 2, co + 1), annuel.Cells(numligsem + 2, co + 5).Resize(25))
'Je compte le nombre de ligne dans la colonne A de la feuille données
nblignA = Fdonnees.Range("A1").End(xlDown).Row
'Je Créer le tableau avec la première colonne de la feuille données
f = 3
g = 3
i = 0
For Each Celan In anarea
ReDim tabdonnees(nblignA, 3)
tabdonnees(i, 0) = Fdonnees.Range("A" & i) 'Colonne A
tabdonnees(i, 1) = Fdonnees.Range("B" & i) 'Colonne B
tabdonnees(i, 2) = Fdonnees.Range("C" & i) 'Colonne C
If Celan = tabdonnees(i, 0) Then
Asheet.Cells(f, g).Value = tabdonnees(i, 1)
Asheet.Cells(f + 1, g).Value = Celan.Address
End If
If i > 0 Then
i = i - 1
End If
f = f + 2
g = g + 1
If g > 5 Then
g = 3
End If
Next Celan
End If
Next co
Next numligsem
End Sub
Pièces jointes
Dernière édition: