Bonjour,
Je souhaite copier les colonnes d'un tableau contenu dans une feuille nommée 'TCD' au-dessus d'un tableau contenu dans la feuille 'DISPO'.
Chaque entête de la colonne du tableau contenu dans 'TCD' doit venir se positionner au-dessus de la colonne correspondante du tableau déjà présent dans la feuille 'DISPO'.
Si la colonne du tableau contenu dans 'TCD' n'est pas présente dans le tableau de la feuille 'DISPO' alors je dois cesser le traitement.
La recopie de la colonne ne se passe pas correctement car je n'utilise pas la bonne méthode Excel.
Voici le code :
A l'exécution de la ligne de code située sous la ligne *****
j'ai le message d'erreur : "Erreur d'exécution 1004. Erreur définie par l'application ou par l'objet."
Merci d'avance.
Je souhaite copier les colonnes d'un tableau contenu dans une feuille nommée 'TCD' au-dessus d'un tableau contenu dans la feuille 'DISPO'.
Chaque entête de la colonne du tableau contenu dans 'TCD' doit venir se positionner au-dessus de la colonne correspondante du tableau déjà présent dans la feuille 'DISPO'.
Si la colonne du tableau contenu dans 'TCD' n'est pas présente dans le tableau de la feuille 'DISPO' alors je dois cesser le traitement.
La recopie de la colonne ne se passe pas correctement car je n'utilise pas la bonne méthode Excel.
Voici le code :
Code:
Private Sub CommandButton1_Click()
Dim nbcoltcd As Integer
Dim NbLignes As Integer
Dim fin As Boolean
Dim ko As Boolean
Dim trouve As Boolean
Dim datecharge As String
' Indice de la colonne traitée dans le 'TCD'
Dim i As Integer
' Indice de la colonne traitée dans la capacité
Dim j As Integer
' Nombre de colonnes de la disponiblité
Dim nbcoldispo As Integer
' Recherche du nombre de colonnes de TCD
nbcoltcd = Worksheets("TCD").UsedRange.Columns.Count
' Recherche du nombre de lignes de TCD
NbLignes = Worksheets("TCD").UsedRange.Rows.Count
' Recherche du nombre de colonnes à traiter dans le tableau "Capacité." (partie "disponibilité")
nbcoldispo = 2
Do Until Worksheets("DISPO").Cells(10, nbcoldispo).Value = ""
nbcoldispo = nbcoldispo + 1
Loop
nbcoldispo = nbcoldispo - 1
MsgBox "Nombre de colonnes à traiter dans le tableau des capacités :" & nbcoldispo
' Suppression du tableau de "charge" contenu dans l'entête de la capacité
Worksheets("DISPO").Range("B2").CurrentRegion.ClearContents
' Copie de la colonne des machines de TCD vers la feuille 'Capacité'
Worksheets("TCD").Range("A2:A" & NbLignes).Copy Destination:=Sheets("DISPO").Range("A2")
' Boucle pour traiter toutes les dates
' Fin-trt, j'ai traité toutes les dates,
' Trt-ko, je ne trouve pas ma date dans la colonne des disponibilités
ko = False
fin = False
i = 2
Do Until fin Or ko
' Recherche de la date dans la colonne de disponibilité
trouve = False
' Initialisation de la colonne traitée dans la disponibilité
j = 2
datecharge = Worksheets("TCD").Cells(2, i).Value
Do Until trouve Or ko
' MsgBox "je passe dans boucle"
If Worksheets("DISPO").Cells(10, j).Value > datecharge Then
ko = True
MsgBox "ko"
Else
If datecharge = Worksheets("DISPO").Cells(10, j).Value Then
MsgBox "Date trouvée : " & datecharge
trouve = True
End If
End If
j = j + 1
Loop
' Si trouvé alors je copie la colonne de la "Charge" vers les dispo.
If trouve Then
j = j - 1
MsgBox "Je copie la colonne n° " & i & " du tableau de tcd vers la colonne " & j & "du tableau de disponibilité."
Worksheets("TCD").Range(Cells(2, i), Cells(NbLignes, i)).Copy
MsgBox ("copie")
Worksheets("DISPO").Range(Cells(2, j)).PasteSpecial xlPasteValues
**** la recopie plante sur la ligne ci-dessous
Worksheets("TCD").Range(Cells(2, i), Cells(NbLignes, i)).Copy Destination:=Worksheets("DISPO").Range(Cells(2, j), Cells(NbLignes, j))
MsgBox "J'ai copié !"
End If
' Passage à la colonne suivante du tcd
If ko = False Then
i = i + 1
If i > nbcoltcd Then
fin = True
End If
End If
Loop
If ko Then
MsgBox "Traitement incorrect !"
End If
End Sub
A l'exécution de la ligne de code située sous la ligne *****
j'ai le message d'erreur : "Erreur d'exécution 1004. Erreur définie par l'application ou par l'objet."
Merci d'avance.