Recopie de cellules

Q

Quizz

Guest
Bonjour le forum,

J'ai dans un tableau 3000 lignes de suivi. Dans ma colonne A une liste de valeurs, et dans ma colonne b, une deuxième liste.
Voici mon modèle

A Paul
B
C
D Pierre
E
F
G Gilles

Je souhaite pouvoir via une macro ou une formule, remplir les cellules de la 2ème colonne sachant que leur valeur est égale à la valeur du dessus. Donc pour B & C, valeur = Paul, pour E & F, valeur = Pierre.

Merci d'avance.
 
M

Michel_M

Guest
Bonjour,

Ci dessous proposition en VBA

Option Explicit

Sub combler()
Dim lig_dep As Long, lig As Long
Dim valeur As String

If IsEmpty(Range("B1")) Then
MsgBox " pas de valeur sur 1° ligne"
Exit Sub
End If

Application.ScreenUpdating = False

lig_dep = 1
Do While lig <> 1
valeur = Cells(lig_dep, 2)
lig = Columns(2).Find("*", Cells(lig_dep, 2), , , xlByRows).Row

If lig = 1 Then
lig = Range("A65536").End(xlUp).Row
Range(Cells(lig_dep + 1, 2), Cells(lig, 2)) = valeur
Exit Do
Else
Range(Cells(lig_dep + 1, 2), Cells(lig - 1, 2)) = valeur
lig_dep = lig
End If

Loop

End Sub

A+
Michel
 
Q

Quizz

Guest
Bonjour Michel,

Merci pour cette macro excellente! J'ai juste un petit soucis, j'aurais dû te le préciser dans ma demande. En fait, pour certaines cellules, j'ai juste besoin d'une recopie de la cellule précédente si celle-ci est remplie. Ex :


A Paul Si j'utilise ta macro, voici A Paul
B Pierre le résultat que j'obtiens B Paul
C C Paul
D D Paul
E Gilles E Gilles
F F Gilles
G G Gilles

Alors que je voudrais :
A Paul As-tu une soluce? Merci d'avance!
B Pierre
C Pierre
D Pierre
E Gilles
F Gilles
 
M

Michel_M

Guest
Re,

effectivement, y'avait un p'tit piège

au lieu de:

Range(Cells(lig_dep + 1, 2), Cells(lig, 2)) = valeur
et
Range(Cells(lig_dep + 1, 2), Cells(lig - 1, 2)) = valeur

ecrire:
Range(Cells(lig_dep, 2), Cells(lig, 2)) = valeur
et
Range(Cells(lig_dep, 2), Cells(lig - 1, 2)) = valeur

A+
Michel
 
C

ChTi'160

Guest
Salut "Quizz "
bonsoir michel bonsoir le"FORUM"
as tu essayé via Edition /Atteindre/cellules /cellules vides
puis tu sélectionnes celon le sens dans lequel la cellule doit être remplie exemple
A1 =Paulsi tu veux remplir B1 ,C1 avec Paul tu tapes = puis tu appuyes sur la touche Haut ensuite CTRL+ Entrée
B1
C1
D1=Jean si tu veux que les cellules B1,C1 soient rempli par Jean la procédureEdition /Atteindre/cellules /cellules videstu sélectionnes la cellule C1 avec CTRL enfoncée pour changer la cellule active
ensuite tu appuyes sur la touche bas enfin CTRL +Entrée
E1
F1
G1
H1=pierre
A+++Jean Marie
 

Discussions similaires

Réponses
22
Affichages
957

Statistiques des forums

Discussions
312 972
Messages
2 094 055
Membres
105 930
dernier inscrit
Manoa