Microsoft 365 erreur syntaxe pour coller sous un tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

thenesol

XLDnaute Junior
bonjour à tous

avec cet extrait de code que j'ai récupéré, je souhaite coller un range (sourceRange) sous le tableau "Tabl_test" juste sous la colonne "titre_1" (qui n'est pas la 1ere colonne du tableau)
mais sa plante sur la ligne en jaune : "propriété ou méthode non gérée par cet objet" qu'il dit

VB:
Set tbl = wb0.Sheets("test").ListObjects("Tabl_test")
col_destination = "titre_1"


On Error Resume Next
    Set destinationColumn = tbl.ListColumns(col_destination)
On Error GoTo 0
    ' Check if the column exists
If Not destinationColumn Is Nothing Then
    ' Insert a new row below the table
    tbl.ListRows.Add
    ' Set the destination range under the specific column
    destinationRange = tbl.ListRows(tbl.ListRows.Count).ListObjects.ListColumns(col_destination).DataBodyRange
    ' Copy the values from the source range to the destination range
    destinationRange.Value = sourceRange.Value
Else
    MsgBox "Column not found.", vbExclamation
End If

1700678043960.png

quelle serait la bonne formulation ?

merci...!
 
oui, je comprends
mais pour envoyer un classeur il faudrait que je depiaute mes données et mon code, j'espérais identifier le problème sans ça.

en fait je crois que j'ai compris : j'ai l'impression il faut que destinationRange et sourceRange aient le même nombre de lignes et de colonnes
c'est bien ça ?

je pensais que c'était aussi simple de faire comme dans excel, copier une zone et la coller sur une cellule pour que la zone se propage toute seule

en tout cas ça fonctionne maintenant

merci pour ce qui précède !
 
Vous pouvez quand même essayer d'ajouter .Resize(SourceRange.Rows.Count) derrière tbl.ListRows.Add.Range ou peut être plutôt plus bas derrière DestinationRange
VB:
DestinationRange.Rezize(SourceRange.Rows.Count).Value = SourceRange.Value
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
68
Affichages
8 K
Retour