Selection plage de cellules

Bonjour

J'ai une question s'il vous plait au sujet de la selection des cellules.

J'utilise le code suivant :

test = Range(Range("F2"), Range("F2").End(xlDown)).Select

Selection.Copy

Range("M4").Select

ActiveSheet.Paste

Quand j'ai plusieurs cellules le code fonctionne correctement, mais quand j'au une seule cellule remplie, le code ne fonctionne pas et j'ai le message d'erreur suivant

Erreur d'execution 1004

Merci d'avance pour votre aide

Cordialement

Bonjour,

Lorsque tu n’as que la cellule F2 remplie, l’instruction Range("F2").End(xlDown) renvoie la dernière cellule de la feuille (F1048576).

Range(Range("F2"), Range("F2").End(xlDown)) correspond donc à la plage F2:F1048576.

Cette plage ne peut pas être copiée à partir de M4.

Essaye comme cela

Sub Test()
    Range(Range("F2"), Range("F" & Rows.Count).End(xlUp)).Copy Range("M4")
End Sub

Cordialement.

Bonjour,

Un exemple à adapter.

Cdlt.

Public Sub CopyData()
Dim lastRow As Long, rng As Range
    With ActiveSheet
        With .Cells(2, 6)
            lastRow = .End(xlDown).Row
            Set rng = .Resize(lastRow - 1)
        End With
        .Cells(4, 13).Resize(rng.Rows.Count).Value = rng.Value
    End With
End Sub

Merci à tous pour vos réponses

G

Bonjour,

Lorsque tu n’as que la cellule F2 remplie, l’instruction Range("F2").End(xlDown) renvoie la dernière cellule de la feuille (F1048576).

Range(Range("F2"), Range("F2").End(xlDown)) correspond donc à la plage F2:F1048576.

Cette plage ne peut pas être copiée à partir de M4.

Essaye comme cela

Sub Test()
    Range(Range("F2"), Range("F" & Rows.Count).End(xlUp)).Copy Range("M4")
End Sub

Cordialement.

J'ai essayé ton code et ca fonctionne, merci

Bonjour,

Un exemple à adapter.

Cdlt.

Public Sub CopyData()
Dim lastRow As Long, rng As Range
    With ActiveSheet
        With .Cells(2, 6)
            lastRow = .End(xlDown).Row
            Set rng = .Resize(lastRow - 1)
        End With
        .Cells(4, 13).Resize(rng.Rows.Count).Value = rng.Value
    End With
End Sub

J'ai essayé la procédure que tu m'as envoyé, lors de l'execution du code j'ai le message d'erreur suivant :

Erreur d'execution 1004

J'ai râté un détail?

Merci de m'aider à comprendre l'erreur

Cordialement

Re,

Je te rassure !...

C'est moi qui suit fautif.

Je regarde. Es tu obligé de travailler avec xlDown ?

Cdlt.

Re,

Une correction ?

Cdlt.

Public Sub CopyData()
Dim lastRow As Long, rng As Range
    With ActiveSheet
        Set rng = .Cells(2, 6).CurrentRegion.Columns(1)
        .Cells(4, 13).Resize(rng.Rows.Count).Value = rng.Value
    End With
End Sub

Re,

Une correction ?

Cdlt.

Public Sub CopyData()
Dim lastRow As Long, rng As Range
    With ActiveSheet
        Set rng = .Cells(2, 6).CurrentRegion.Columns(1)
        .Cells(4, 13).Resize(rng.Rows.Count).Value = rng.Value
    End With
End Sub

Ca fonctionne parfaitement cette fois

Non je ne suis pas obligé d'utiliser xlDown. Je voulais comprendre ton code, ca me permet d'apprendre une autre méthode de faire

Un grand merci pour ton aide et celle de gyrus

Cordialement

Rechercher des sujets similaires à "selection plage"