Macro copier coller dernière colonne vide

Bonjour à tous,

Je voudrais faire une macro qui me récupère la valeur de la cellule contenue dans la dernière colonne vide d'un onglet (onglet_référence) et qui me la colle sur la dernière colonne vide d'un autre onglet (onglet_graphique).

J'ai commencé à faire la macro suivante, qui ne fonctionne pas:

Private Sub CommandButton1_Click()

Dim DEST As Range

der_colonne = Sheets("onglet_référence").Range("D44").End(xlToLeft).Columns

Sheets("onglet_graphique").Range("44" & der_colonne).Copy

Set DEST = IIf(Range("D3") = "", Range("D3"), Cells(3, Application.Columns.Count).End(xlToLeft).Offset(0, 1))

DEST.Resize(1, 1).Value = OS.Range("D3").Value

End Sub

Il y a une erreur sur la ligne suivante : Sheets("Données graphiques").Range("44" & der_colonne).Copy

Je suppose que c'est lié à la syntaxe de l'écriture de l'instruction Range, mais je ne sais pas comment l'écrire.

Quelqu'un pourrait-il m'aider?

Bonjour Minipoucebn, bonjour le forum,

Quand tu travailles dans plusieurs onglets, pense a spécifier systématiquement l'onglet pour chaque objet Range...

Le code (si j'ai bien compris) :

Private Sub CommandButton1_Click()
Dim R As Worksheet
Dim G As Worksheet
Dim DC As Integer
Dim DEST As Range

Set R = Worksheets("onglet_référence")
Set G = Worksheets("onglet_graphique")
DC = R.Range("D44").End(xlToLeft).Columns
Set DEST = IIf(G.Range("D3") = "", G.Range("D3"), G.Cells(3, Application.Columns.Count).End(xlToLeft).Offset(0, 1))
R.Cells(44, DC).Copy DEST
End Sub

Bonjour Thauthème,

Merci pour le code

Si j'ai bien compris:

La ligne DC = R.Range("D44").End(xlToLeft).Columns permet de récuperer la dernière colonne non vide de la ligne 44

La ligne Set DEST = IIf(G.Range("D3") = "", G.Range("D3"), G.Cells(3, Application.Columns.Count).End(xlToLeft).Offset(0, 1)) permet de coller la valeur de la cellule récupéré sur la ligne précédente dans la dernière colonne vide de la ligne 3

Parceque j'ai un léger soucis : quand j'execute le code, il me copie la ligne C44 au lieu de la ligne D44. Saurais-tu pourquoi?

J'ai trouvé la réponse. Il fallait mettre DC = R.Range("D21").End(xlToRight).Column à la place de xlToLeft et enlever le s a Column.

Merci beaucoup

Rechercher des sujets similaires à "macro copier coller derniere colonne vide"