Copie d'un tableau aux lignes variable dans un autre tableaux

Hello à tous,

J'aimerais que les lignes (B10 à B12) du tableau soient envoyées vers un autre tableau (aux colonnes identiques) les données sont envoyées dans un tableau se trouvant dans différentes feuille et est choisi par la cellule C2.

Autrement dit, j'ai plusieurs feuilles (JNL Vente, JNL Achat...) et selon que je choisi en C2 la feuille les données choisie y sont envoyées

Le fonctionnement est celui-ci:

Je choisi ma feuil (en cellule C2)

Je rempli mes données du tableau, ces données, peuvent varier de 3 à x lignes suivant les factures.

Une fois rempli et vérifier, j'ai un bouton qui envoi les données vers le tableaux choisi.

capture d ecran 2024 02 10 100052

J'ai deux codes, ca m'envoi bien des données mais rien a voir avec le tableau... il m'envoi les lignes a partir de C5 ????

Voici le code du module

Option Explicit
Sub addinfo(pages, lignes)

    Dim dl As Long
    Dim page As String

    page = pages

    ' trouver la dernière ligne du tableau

    If Sheets(page).Range("b5") = Empty Then
        dl = 5

    Else
        Sheets(page).ListObjects(1).ListRows.Add
        dl = Sheets(page).Range("b4").End(xlDown).Row + 1
    End If

    With Sheets(page)
        .Range("b" & dl) = .Range("A1")
        .Range("c" & dl) = Range("c" & dl) 'la date
        .Range("e" & dl) = Range("e" & dl) 'code tva
        .Range("f" & dl) = Range("f" & dl) 'taux TVA
        .Range("g" & dl) = Range("g" & dl) 'débit
        .Range("h" & dl) = Range("h" & dl) 'crédit
    End With

End Sub

Voici le code du bouton

Private Sub CommandButton2_Click()
Dim ligne As Range
Dim controle As Boolean
controle = True

If controle = True Then

    Dim nombre As Long
    nombre = ActiveSheet.ListObjects(1).ListRows.Count + 10

    Dim dl As Long
    Dim boucle

    Dim page As String
    page = Range("c2")

    For boucle = 10 To nombre
        Call addinfo(Range("c2"), boucle)

    Next boucle

End If

End Sub

Je bug, les codes ne sont peut-être pas approprier ??? je ne dois pas être très loin mais mes connaissance sont limitée en VBA.

Besoin d'aide.

Merci d'avance

Stef.

bonjour Stef5031,

un essai sans fichier,

Sub ajouter()

     If StrComp(ActiveSheet.Name, "Nom de ma feuille", 1) <> 0 Then MsgBox "feuille incorrecte": Exit Sub

     With Range("B9").ListObject             'votre tableau avec les données
          If .ListRows.Count = 0 Then MsgBox "rien": Exit Sub
          Set c = .DataBodyRange.Resize(, 6)
     End With

     With Sheets(CStr(Range("A2").Value)).ListObjects(1)     'tableau destination
          .ListRows.Add.Range.Resize(c.Rows.Count, c.Columns.Count).Value = c.Value
     End With
End Sub

Bonjour Bart,

Merci pour ton aide, mais j'ai pas tout compris. sorry.

J'ai placé le code au click du bouton.

mais j'ai l'erreur suivante

image

Avec Set C en bleu.

stef

bonjour Stef5031,

c'est un point de discussion, mais moi, je ne déclare plus mes variables.

Ajoutez comme première ligne de la macro "Dim c as range"

Hello,

Voici mon fichier test.

J'aimerais que les lignes (B11 à B13) du tableau soient envoyées vers un autre tableau (aux colonnes identiques) les données sont envoyées dans un tableau se trouvant dans différentes feuille et est choisi par la cellule C2.

Autrement dit, j'ai plusieurs feuilles (JNL Vente, JNL Achat...) et selon que je choisi en C2 la feuille les données choisie y sont envoyées

Le fonctionnement est celui-ci:

Je choisi ma feuil (en cellule C2)

Je rempli mes données du tableau, ces données, peuvent varier de 3 à x lignes suivant les factures.

Une fois rempli et vérifier, j'ai un bouton qui envoi les données vers le tableaux choisi et efface les ligne envoyée de la feuil source

Les codes écris a la base fonctionnent sur une version d'excel antécédente à 365. est-ce la version qui fait foiré le tout ????

je sèche méchamment.

Stef

Rechercher des sujets similaires à "copie tableau lignes variable tableaux"