problème avec une macro qui ne fonctionne que partiellement

0

Bonjour et merci d'avance de vous pencher sur ma question ,

je suis débutant sur VBA et j'ai tenté une macro pour alimenter un fichier sur des besoins en personnel suivant le plan de charge et ce jour par jour ,seulement quand je lance la macro elle ne fonctionne que partiellement et je n'ai pas d'erreurs lorsque je la teste ,voici la macro en question :

Sub chargementplanning()
'
'chargementplanningmacro
'
Dim i As Long
i = 2
j = 2

Sheets("ordo").Select
Application.ScreenUpdating = False
'exporte le 1er jour de la semaine
While Cells(i, 1) = Range("a2")

'copie "code article"
Cells(i, 2).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 2).Select
ActiveSheet.Paste

Sheets("ordo").Select
'copie"cuisinier"
Cells(i, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 3).Select
ActiveSheet.Paste
i = i + 1
j = j + 1

Wend

'exporte le 2eme jour de la semaine
Sheets("ordo").Select
j = 18
While Cells(i, 1) = Range("a2")

'copie "code article"
Cells(i, 2).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 2).Select
ActiveSheet.Paste

Sheets("ordo").Select
'copie "cuisinier"
Cells(i, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 3).Select
ActiveSheet.Paste
i = i + 1
j = j + 1

Wend

'exporte le 3eme jour de la semaine
Sheets("ordo").Select
j = 32
While Cells(i, 1) = Range("a2")

'copie "code article"
Cells(i, 2).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 2).Select
ActiveSheet.Paste

Sheets("ordo").Select
'copie "cuisinier"
Cells(i, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 3).Select
ActiveSheet.Paste
i = i + 1
j = j + 1

Wend

'exporte le 4eme jour de la semaine
Sheets("ordo").Select
j = 46

While Cells(i, 1) = Range("a2")
'copie "code article"

Cells(i, 2).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 2).Select
ActiveSheet.Paste

Sheets("ordo").Select
'copie "cuisinier"
Cells(i, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 3).Select
ActiveSheet.Paste

i = i + 1
j = j + 1

Wend

'exporte le 5eme jour de la semaine
Sheets("ordo").Select
j = 60

While Cells(i, 1) = Range("a2")

'copie "code article"
Cells(i, 2).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 2).Select
ActiveSheet.Paste

Sheets("ordo").Select
'copie "cuisinier"
Cells(i, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("planning").Select
Cells(j, 3).Select
ActiveSheet.Paste
i = i + 1
j = j + 1

Wend
End Sub

https://www.cjoint.com/doc/20_06/JFos3Hr6wDF_cuisine-.xlsm

    Posté le 14 juin 2020, 20:56
    par af291
    Répondre
    0

    Bonjour,

    Inutile de poser la même question sur 36 forums

    Un peu de patiente et il y aura des réponses

    Posté le 15 juin 2020, 09:03
    0

    Bonjour,

    le code peut être simplifié. Une piste

    Sub chargementplanning1()
    Dim i As Long
    i = 2
    j = 2

    Application.ScreenUpdating = False
    'exporte le 1er jour de la semaine
    Jour = Cells(i, 1)
    While Cells(i, 1) = Jour

    'copie "code article et cuisinier"
    Worksheets("Planning").Cells(j, 2) = Sheets("ordo").Cells(i, 2)
    Sheets("planning").Cells(j, 3) = Sheets("ordo").Cells(i, 3)
    i = i + 1
    j = j + 1
    Wend
    End Sub

    ouisansdoute Posté le 5 juillet 2020, 11:49
    par ouisansdoute

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :