Modifier code VBA arf

Bonjour

j'essaye d'adapter un code sur ma feuille sans y parvenir !

je sollicite un peu d'aide en ce dimanche soir

Sub CreePlan()
  Application.ScreenUpdating = False
  Set BD = Sheets("BD")
  [CongésSem1].ClearContents
  [CongésSem1].Interior.ColorIndex = xlNone
  [CongésSem2].ClearContents
  [CongésSem2].Interior.ColorIndex = xlNone
  For lig = 2 To [A65000].End(xlUp).Row
    Nom = BD.Cells(lig, 1)
    début = BD.Cells(lig, 2)
    fin = BD.Cells(lig, 3)
    typeConges = BD.Cells(lig, 4)
    If Month(début) < 8 Then Set p = Sheets("Congés1") Else Set p = Sheets("Congés2")
    Set temp = p.[H:H].Find(what:=Noms)
    If Not temp Is Nothing Then
      ligPlan = temp.Row
      n = fin - début + 1
      Application.EnableEvents = False
      Application.EnableEvents = False
      [MesCouleurs].Find(typeConges, LookAt:=xlWhole).Copy
      For i = 0 To n - 1
       If Month(début + i) < 8 Then Set p = Sheets("Congés1") Else Set p = Sheets("Congés2")
       d = début - p.Cells(37, 36) + 36
       p.Cells(ligPlan, d + i) = typeConges
       p.Cells(ligPlan, d + i).PasteSpecial Paste:=xlPasteFormats
      Next i
      Application.EnableEvents = True
    End If
  Next lig
End Sub

Je souhaite recopier la base de donnée, dans les ongles conges1 et congés2, c'est la macro"créer plan avec BD"

voici le fichier

http://cours83infirmier.fr/EXCEL/New%20planning%20jeff%2060.xls

merci du support

Précision, j'ai touché la ligne pour adapter sur ma feuille mais apparemment c'est pas bon mais je comprend pas pourquoi....

d = début - p.Cells(37, 36) + 36

Bonsoir

Cela ne va pas fonctionner

Dans la base de données tu as des prénoms, mais tu as mis un nom générique dans les feuilles Congés1 et Congés2

Pour le moment on ne peut rien faire

Sinon j'ai mis Louis en 1er et ça a l'air de fonctionner

Ah oui merci je comprend mon erreur à présent

j'ai modifié cela fonctionne, par contre ma liste de noms doit etre ecrite directement sur "congés1" pour fonctionner et non "renvoyé" à partir d'une autre page sinon cela ne marche pas apparement avec la formule matricielle, ça m'embete un peu.....

Y- a t-il une méthode pour y arriver car j'utilise ma liste de noms sur d'autres feuilles aussi et j'ai besoin de la renseigner à part ?

Et aussi je souhaite recopier uniquement l'intérieur de la cellule et la couleur de la police mais pas toute la cellule, je dois modifier cette ligne comment puis je faire ?

Ma liste de noms est sur une feuille nommée "Paramétrage" dans la colonne "i"

[MesCouleurs].Find(typeConges, LookAt:=xlWhole).Copy

Ou alors quelle macro de recopie puis je utiliser pour venir ecrire dans une cellule, le nom et le prénom sur la feuille "congés1" issue de ma feuille paramétrage ?

Bonjour

Je ne comprends pas toutes tes questions

Zebulonzzz a écrit :

Et aussi je souhaite recopier uniquement l'intérieur de la cellule et la couleur de la police mais pas toute la cellule

Si tu ne veux pas que le type d'absence s'inscrive, neutralise la ligne

      [MesCouleurs].Find(typeConges, LookAt:=xlWhole).Copy
      For i = 0 To n - 1
       If Month(début + i) < 6 Then Set p = Sheets("Congés1") Else Set p = Sheets("Congés2")
       d = début - p.Cells(37, 36) + 36
       'p.Cells(ligPlan, d + i) = typeConges
       p.Cells(ligPlan, d + i).PasteSpecial Paste:=xlPasteFormats
      Next i

Ensuite pour recopier la liste de nom utilise le lien direct

En H38 de la feuilles Congés1

=Paramètres!I2 

En H38 de la feuille Congés2

=Congés1!I2 

etc ... en descendant

Et pas besoin de formule matricielle

Bonjour Banzai, merci de ton support !

effectivement la formule matricielle n'est pas necessaire, donc enlevé grâce à tes conseils !

Pour la cellule, pardon je me suis mal exprimé :

en fait je veux afficher le contenu de l'absence, mais je souhaite le faire en ne "cassant" pas la mise en forme conditionnelle sur le tableau dans laquelle la recopie va etre faite.

j'espère avoir mieux formulé mon probléme, en tout cas merci de m'aider

Rechercher des sujets similaires à "modifier code vba arf"