Contourner un problème de feuille vide ou comportant une ligne

Bonjour,

J'ai terminé mon nouveau fichier mais en le testant je m'aperçois que j'ai un problème que je ne sais pas comment résoudre.

Mon code vient prendre des lignes de données dans 3 feuilles distinctes et les réunis dans une autre feuille.

Mon souci est que parfois l'une des feuilles peut être vide ou ne comporter qu'une seule ligne, et dans ces 2 cas mon code se bloque ici :

    Selection.End(xlDown).Offset(1, 0).Select

Pouvez-vous m'aider à résoudre ça?

Merci beaucoup et bonne après midi

Sub reunir_3_regions()
'
    Sheets("coller ici le CSV NL").Select
    Range("A2:S2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("reunir 3 CSV").Select
    Range("A2:S2").Select
    ActiveSheet.Paste
    Selection.End(xlDown).Offset(1, 0).Select
    Sheets("coller ici le CSV BXL").Select
    Range("A2:S2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("reunir 3 CSV").Select
    ActiveSheet.Paste
    Selection.End(xlDown).Offset(1, 0).Select
    Sheets("coller ici le CSV WALL").Select
    Range("A2:S2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("reunir 3 CSV").Select
    ActiveSheet.Paste
End Sub

Bonjour,

Voici un essai si j'ai bien compris :

Sub reunir_3_regions()
Copier Sheets("coller ici le CSV NL"), Sheets("reunir 3 CSV")
Copier Sheets("coller ici le CSV BXL"),  Sheets("reunir 3 CSV")
Copier Sheets("coller ici le CSV WALL"), Sheets("reunir 3 CSV")
End Sub

Sub Copier(wsSrc as worksheet, wsDest as worksheet)
dl = wsSrc.cells(wsSrc.rows.count, 1).end(xlup).row
nvl = wsDest.cells(wsDest.rows.count, 1).end(xlup).row + 1
wsSrc.Range("A2:S" & dl).Copy wsDest.Range("A" & nvl)
end sub

On pourrait probablement même faire ceci :

Sub reunir_3_regions()
for each ws in worksheets
    if ws.name like "coller ici*" then Copier ws, Sheets("reunir 3 CSV")
next ws
End Sub

Cdlt,

Bonjour à tous,

c'est sensiblement la même chose que 3GB mais comme c'est fait :

Sub reunir_3_regions()
Dim T, i As Long, DLS As Long, DLC As Long

T = Array("coller ici le CSV NL", "coller ici le CSV BXL", "coller ici le CSV WALL") 'tableau des feuilles à traiter
For i = LBound(T) To UBound(T)
    With Worksheets(T(i))
     DLS = .Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne feuille en cours
     If DLS > 1 Then
        DLC = Worksheets("reunir 3 CSV").Range("A" & Rows.Count).End(xlUp).Row + 1 'prmière ligne libre feuille "reunir ..."
        .Range("A2:S" & DLS).Copy Worksheets("reunir 3 CSV").Range("A" & DLC)
     End If
    End With
Next
End Sub

A adapter en fonction de la présence ou non de ligne de titre...

A+

Mille merci, ça fonctionne parfaitement !

(juste celle ci non, ça bloque sur le "Copier")

Sub reunir_3_regions()

for each ws in worksheets

if ws.name like "coller ici*" then Copier ws, Sheets("reunir 3 CSV")

next ws

End Sub

Vous êtes mes sauveurs, que ferais-je sans ce forum....

Bonne après midi ;)

Bonjour à tous,

Il faut rajouter la déclaration de la variable ws :

Sub reunir_3_regions()
dim ws as worksheet
for each ws in worksheets
if ws.name like "coller ici*" then Copier ws, Sheets("reunir 3 CSV")
next ws
End Sub

Bonne après-midi également !

Rechercher des sujets similaires à "contourner probleme feuille vide comportant ligne"