Copier de certaines colonnes d'un tableau au-dessus d'un tableau d'une autre feuille

juju05

XLDnaute Junior
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 :

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.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 737
Messages
2 091 497
Membres
104 960
dernier inscrit
jbhery@