Reference à une plage jusqu'a cellule vide

Bonjour,

Dans une macro j'ai une variable qui s'appel "SOURCE"

Je voudrais que cette variable prenne une plage de cellule jusqu'a ce qu'il trouve une cellule vide.

Aujourd'hui je dois spécifier manuellement la plage que je veux ici (de A1 à A3):

SOURCE = Array(ActiveSheet.Range("A1"),ActiveSheet.Range("A2"),ActiveSheet.Range("A3"))

L'idée est donc de commencer à A1, après A2 jusqu'a il trouve un vide.

Pour le moment je suis obliger de modifier manuellement la macro par exemple ajouter A4 si j'ai une valeur dans A4

Bonjour,

Essaye:

SOURCE = ActiveSheet.Range("A1:A" & Range("A65536").End(xlUp).Row)

A+

Merci pour la réponse.

J'ai un message d'erreur :

Run Time error '13'

Type mismatch

voici la macro complete:

Option Explicit
Dim FDép, Chemin, Sources, S

Sub Récup()

    Application.ScreenUpdating = False
    Set FDép = ActiveSheet
    Range("A1").CurrentRegion.Offset(1, 0).ClearContents

    Chemin = "G:\Dossier A\SousDossierA\" '----> A adapter en fonction du dossier où sont"
                                                'les dossiers "Source"
   'VOICI MON PROBLEME:'

   Sources = Array(ActiveSheet.Range("A1"), ActiveSheet.Range("A2"), ActiveSheet.Range("A3"))
'Sources = ActiveSheet.Range("A1:A" & Range("A65536").End(xlUp).Row)

    'FIN DU PROBLEME'
    For Each S In Sources
        Workbooks.Open Filename:=Chemin & S
        Range("A1").CurrentRegion.Offset(1, 0).Copy
        FDép.Range("A" & Rows.Count).End(xlUp)(2).PasteSpecial xlPasteAll
        ActiveWorkbook.Close
    Next S
    Range("A1").Select
End Sub

Salut,

Quand tu déclare Sources il faut écrire:

Dim Sources As range

A te relire !

J'ai un autre message d'erreur:

Object variable or with block variable not set

une idée?

Bonjour,

Ton code est curieux.

Avec l'instruction Range("A1").CurrentRegion.Offset(1, 0).ClearContents

tu ne conserves que la valeur de A1. Les cellules suivantes (A2, A3, etc.) étant effacées, je ne vois pas l'utilité du reste du programme.

A+

en fait je fais reference à un autre onglet.

J'ai joint mon fichier excel, avec la macro et les commentaires.

je pense que ça sera plus compréhensible. L'idée de Melanie57 semble très proche de la solution

35consolidation.xlsm (16.22 Ko)

Essaie comme cela

Sub Récup()
Dim FDép As Worksheet
Dim Chemin As String
Dim Sources As Range, S As Range
    Application.ScreenUpdating = False
    Set FDép = Worksheets("DATA")
    FDép.Range("A1").CurrentRegion.Offset(1, 0).ClearContents
    Chemin = "G:\Dossier A\SousDossierA\" '----> a adapter les dossiers "Source"
    Set Sources = Sheets("Input").Range("A2:A" & Sheets("Input").Range("A65536").End(xlUp).Row)
    For Each S In Sources
        Workbooks.Open Filename:=Chemin & S.Value
        Range("A1").CurrentRegion.Offset(1, 0).Copy
        FDép.Range("A" & Rows.Count).End(xlUp)(2).PasteSpecial xlPasteAll
        ActiveWorkbook.Close
    Next S
    Range("A1").Select
End Sub

A+

Super de chez super!

MERCI !!!!

Rechercher des sujets similaires à "reference plage vide"