Etirer dernière cellule non vide de la colonne A après chaque boucle VBA

Fermé
Lucie - Modifié le 3 sept. 2020 à 17:22
 Lucie - 3 sept. 2020 à 22:43
Bonjour à tous,

Après une multitude d'essais je me dis que la réponse se trouve peut être ici :)

Je souhaite consolider plusieurs feuilles (qui ont le même format) sur une seule et unique feuille Excel. Jusque là tout va bien.

Mon problème est le suivant :
Je souhaite pouvoir étirer la formule se trouvant dans la dernière cellule non vide de la colonne A (exemple A2), jusqu'à la dernière cellule B non vide. Mon problème c'est que à chaque fois que je copie un onglet la position de ma dernière cellule non vide de la colonne A change. C'est cette dernière cellule que je dois étirer boucle après boucle.

La seule piste que j'ai trouvée est la suivante :
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Range("A2").AutoFill Range("A2:A" & Range("B10000").End(xlUp).Row) 'je voudrais rendre ma ligne de code plus neutre en ne spécifiant pas la cellule A2 car cette dernière varie à chaque boucle

je souhaiterais également voir le décompte de chaque feuille traitée

Pourriez-vous m'aider s'il vous plait ?

Mille Mercis

Lucie
A voir également:

4 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
3 sept. 2020 à 17:37
Bonjour,

Sub test()
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row
    Range("A" & DernLigne).AutoFill Range("A" & DernLigne & ":A" & Range("B10000").End(xlUp).Row)
End Sub


décompte de chaque feuille traitée
Si vous parlez de feuilles
Chaque fois que vous passez par ces lignes de code, vous un +1 sur une variable
Quand toutes les feuilles sont vues
Vous ecrivez le contenu de cette variable dans une cellule
0
Merci pour votre réponse rapide. Malheureusement cela ne fonctionne pas totalement :
La dernière cellule de la colonne A se copie à partir de la dernière cellule B non vide et cela jusqu'à la fin du fichier Excel.

Ce que je rechercher :
1 ère boucle :
- ma formule est dans la cellule A2
- ma dernière cellule B non vide est en B5
- Je veux étendre la cellule A2 jusqu'en B5

2ème boucle :
- ma formule est dans la cellule A6
- ma dernière cellule B non vide est en B13
- je veux étendre la cellule A6 jusqu'en B13

Et ainsi de suite

Auriez-vous une autre solution pour moi ? :)
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
3 sept. 2020 à 18:00
Re,

A tester

Sub test()
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row
    If DernLigne > 2 Then
        PCV = DernLigne + 1
    Else
        PCV = DernLigne
    End If
    Range("A" & PCV).AutoFill Range("A" & PCV & ":A" & Range("B10000").End(xlUp).Row)
End Sub
0
Malheureusement cela ne fonctionne toujours. c'est peut être dû à mon fichier car certaines lignes sont vides.

Vous trouverez ci-dessous mon fichier avec la macro complète, ça sera certainement plus facile :

https://drive.google.com/file/d/15HwVgbD1nGclEZLOmZBh8Lx1selOXsva/view?usp=sharing

Encore merci pour votre aide
0
Je voulais vous informer qu'une solution a été trouvée ! Il s'avère que le fichier source est beaucoup plus complexe que ce que je n'imaginais ....

Merci pour les pistes que vous m'aviez données

Lucie
0