VBA : recopie plage jusqu'à la dernière cellule non vide

Bonjour à toutes et à tous,

je débute dans la programmation VBA et je rencontre le problème suivant :

sur mon fichier, et plus particulièrement sur l onglet XTRADE_13, je souhaite copier depuis A4 jusqu'à la dernière cellule non vide en colonne F

J'ai fait 2 codes (Test & Test2) mais aucun ne fonctionne et je ne comprends pas pourquoi

Sub test()

Sheets("XTRADE_13").Select

.Range(Cells(4, 6), Cells(Worksheets("XTRADE_13").Range("f" & Rows.Count).End(xlUp).Row, 6)).Select

End Sub

Sub test2()

Sheets("XTRADE_13").Select
lig_fin = Cells(Cells.Rows.Count, "F").End(xlUp).Row
Range("A4:F" & ligfin).Copy

End Sub

Merci pour votre aide

Bonjour et

.../...J'ai fait 2 codes (Test & Test2) mais aucun ne fonctionne et je ne comprends pas pourquoi.../...

Dans le premier code, on ne fait que sélectionner la plage F4:Fdernière cellule non vide de la colonne F

Dans le second on ne fait que copier (sans la coller) la plage la plage A4:Fdernière cellule non vide de la colonne F.

A essayer :

Sub test()
With Worksheets("XTRADE_13")
' détermination dernière cellule non vide colonne A
 lig_finA = .Range("A" & Rows.Count).End(xlUp).Row

' détermination première cellule vide colonne F
 lig_finF = .Range("F" & Rows.Count).End(xlUp).Row + 1

'Copie de la plage colonne A sur la première cellule libre de la colonne F
 .Range("A4:A" & lig_finA).Copy .Range("F" & lig_finF)
End With
End Sub

A+

merci pour la réponse

lors du test, vba me demande de définir les variables

et là, je sèche ...

je pensais avoir trouvé la solution en déclarant les variables comme ci dessous mais ça bugge toujours ...

Sub test()

Dim lig_finA As Range
Dim lig_finF As Range

With Worksheets("XTRADE_13")

' déterminationdernière cellule non vide colonne A
lig_finA = .Range("A" & Rows.Count).End(xlUp).Row

' détermination première cellule vide colonne F
lig_finF = .Range("F" & Rows.Count).End(xlUp).Row + 1

'Copie de la plage colonne A sur la première cellule libre de la colonne F
.Range("A4:A" & lig_finA).Copy .Range("F" & lig_finF)

End With

End Sub

j'ai le message d'erreur suivant :

erreur d'execution 91 :

variable objet ou variable de bloc with non définie

La déclaration as Range est utilisée pour les variables représentant une cellule, une plage de cellule

lig_finA et lig_finF vont recevoir un numéro de ligne ( nombre entier), donc à déclarer en numérique ...

Par exemple , si le numéro de ligne ne dépasse pas 32767 :

Dim lig_finA As Integer
Dim lig_finF As Integer

Voir dans l'aide Excel les différents types de données

merci

Rechercher des sujets similaires à "vba recopie plage derniere vide"