Recopie même cellule avant chaque ligne vide

c.azzopardi@free.fr

XLDnaute Nouveau
Bonjour,

Je m'explique, en A1 j'ai "ABCD" ensuite de A2 à A5, j'ai des nombres et à nouveau en A6 j'ai "ABCD". A7 est vide et je repars en A8 avec le même principe qu'au dessus sauf que "ABCD" sera autre chose et que le nombre de ligne peut varier bien évidemment.

Je voulais savoir s'il est possible de créer une macro qui recopiera "ABCD" jusqu'au suivant et ainsi de suite pour les autres ""ABCD"" à chaque fois qu'il y aura une cellule vide.

Merci par avance de votre aide.

Christophe
 
C

Compte Supprimé 979

Guest
Re : Recopie même cellule avant chaque ligne vide

Salut,

On peut avoir un code du style :
Code:
ValCopie = Range("A1").value
For Each Cel in Range("A2:A" & range("A" & Rows.count).End(XlUp).Row)
 If cel.value = "" then cel.value = ValCopie
Next Cel

Mais je ne suis pas certain que ce soit ce que tu veux :confused:

A+
 

Coyote

XLDnaute Junior
Re : Recopie même cellule avant chaque ligne vide

inutile de créer une macro

Sélectionne la colonne contenant les cellules vides (ou la zone de cellule correspondante)
Assure toi au préalable d'avoir un titre dans la 1ère ligne de la zone sélectionné

Créer un filtre sur cette zone (une flèche apparait sur la 1ère ligne de ta zone) : Menu Données, Filtres, Filtre automatique
Copie la cellule à répéter (dans ton exemple ABCD)
Clique sur la flèche du filtre
Dans le menu déroulant assure toi que seul vide soit coché
Seules les cellules vides restent affichés à l'écran
Sélectionne l'ensemble des cellules où ABCD doit être recopier
Colle la valeur copier
Annule le filtre : Menu Données, Filtres, Filtre automatique

Espérant que cette solution correspondant à ta demande

Cordialement

Luc
 

c.azzopardi@free.fr

XLDnaute Nouveau
Re : Recopie même cellule avant chaque ligne vide

je me suis peut-etre mal expliqué

A1 : ABCD
A2 : 1234
A3 : 4567
A4 : ABCD
A5 : cellule vide
A6 : XLD
A7 : 876
A8 : XLD
A9 : cellule vide et ainsi de suite.

ce que je veux faire c'est remplacer le contenu des cellules qui se trouvent entre les cellules qui contiennent les lettres. et a chaque fois qu'il y a une cellule vide ca veut dire qu'on change de "critère".
Est ce plus clair ? merci

a bientot
 
C

Compte Supprimé 979

Guest
Re : Recopie même cellule avant chaque ligne vide

je me suis peut-etre mal expliqué
Sans fichier c'est difficile de comprendre

ce que je veux faire c'est remplacer le contenu des cellules qui se trouvent entre les cellules qui contiennent les lettres. et a chaque fois qu'il y a une cellule vide ca veut dire qu'on change de "critère".
Est ce plus clair ?
Non absolument pas !
Il faut penser que nous ne sommes pas dans ta tête et que ce que tu souhaites n'est pas forcément ce que nous comprenons.

Le mieux est de nous joindre un fichier, comme il est indiqué dans la charte, avec ce que tu as et ce que tu voudrais.

Voilà, A+
 

Coyote

XLDnaute Junior
Re : Recopie même cellule avant chaque ligne vide

comme quoi le fichier exemple fourni donne une meilleure compréhension du sujet

j'étais à côté de la plaque, je croyais qu'il fallait combler les trous par une variable unique

ci-après une macro qui a fonctionné avec ton fichier test

Sub compl()
xref = Range("A2").Text
Range("B2").Value = xref

For i = 1 To 1000

xtest = Range("A2").Offset(i, 0).Text

If xtest = "" Then
i = i + 1
xref = Range("A2").Offset(i, 0).Text
End If

Range("B2").Offset(i, 0).Value = xref

Next i

End Sub


DANS TON FICHIER REEL (fais une copie au préalable, on ne sait jamais)

Crée un module dans Visual Basic (Alt F11) en copiant les lignes de macro ci-dessus


A noter que toutes les références A2 et B2 sont à remplacer par la 1ère ligne à traiter de ton fichier réel

A étant la colonne à tester
B étant la colonne à compléter

2 étant la 1ère ligne à tester et compléter


Complète également la boucle for i=1 to 1000
Dans cet exemple je me limite à tester 1000 lignes, vérifie la fin de ton fichier et met le nombre de ligne de l'onglet à traiter


Il ne te reste plus qu'à executer la macro depuis l'onglet à traiter


Amitiés

Luc
 

Coyote

XLDnaute Junior
Re : Recopie même cellule avant chaque ligne vide

Si finalement tu souhaitais écraser la colonne A initiale

Tu n'as qu'à copier la colonne B sur la colonne A et supprimer la colonne B par la suite

ou remplacer B2 par A2 dans la macro
 

Pierrot93

XLDnaute Barbatruc
Re : Recopie même cellule avant chaque ligne vide

Bonsoir à tous

une autre solution, si j'ai bien compris...

Code:
Sub test()
Dim c As Range, t As String
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
    If Not IsNumeric(c.Value) Then t = c.Value
    If Not IsEmpty(c.Value) Then c.Offset(0, 1).Value = t
Next c
End Sub

bonne soirée
@+
 

Discussions similaires