Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Automatiser la copie de cellulle à partir d'une cellule du desso us

3 réponses
Avatar
Benoît
Je n'arrive pas à remplir des cellules vides à partir de données qui se
trouvent dans des cellules en dessous.

A1 et B1 vide
A2 et B2 vide
A3 et B3 vide
A4 et B4 vide
A5 = 901000 et B6 = Accueil
A6 et B6 vide
A7 et B7 vide
A8 = 902000 et B8 = Information
ainsi de suite

Je veux une formule qui lise la cellule si elle est vide qu'elle passe à
celle juste en dessous et dès qu'elle trouve une cellule remplie (Par Ex. A5)
qu'elle recopie cette cellule dans la vide.

Merci d'avance

3 réponses

Avatar
isabelle
bonjour Benoît,

Sub Macro1()
dp = Range("A1")
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c = 0 Then
Range(c.Address) = dp
Else
dp = c
End If
Next
End Sub

isabelle

Je n'arrive pas à remplir des cellules vides à partir de données qui se
trouvent dans des cellules en dessous.

A1 et B1 vide
A2 et B2 vide
A3 et B3 vide
A4 et B4 vide
A5 = 901000 et B6 = Accueil
A6 et B6 vide
A7 et B7 vide
A8 = 902000 et B8 = Information
ainsi de suite

Je veux une formule qui lise la cellule si elle est vide qu'elle passe à
celle juste en dessous et dès qu'elle trouve une cellule remplie (Par Ex. A5)
qu'elle recopie cette cellule dans la vide.

Merci d'avance



Avatar
docm
Bonjour Benoît

Si tu veux ne laisser aucune ligne vide en colonnes A et B:

Sub Supprimer_les_cellules_vides_Colonnes_A_et_B()
NbreDeVides = 0
NumeroCombler = 0
ReDim LignesVides(NbreDeVides)
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c = 0 And c.Offset(0, 1) = 0 Then
NbreDeVides = NbreDeVides + 1
ReDim Preserve LignesVides(NbreDeVides)
LignesVides(NbreDeVides) = c.Address
Else
If NbreDeVides > NumeroCombler Then
NumeroCombler = NumeroCombler + 1
Range(LignesVides(NumeroCombler)) = c.Value
c.Value = ""
NbreDeVides = NbreDeVides + 1
ReDim Preserve LignesVides(NbreDeVides)
LignesVides(NbreDeVides) = c.Address
End If
End If
Next
End Sub

docm

"Benoît" a écrit dans le message news:

Je n'arrive pas à remplir des cellules vides à partir de données qui se
trouvent dans des cellules en dessous.

A1 et B1 vide
A2 et B2 vide
A3 et B3 vide
A4 et B4 vide
A5 = 901000 et B6 = Accueil
A6 et B6 vide
A7 et B7 vide
A8 = 902000 et B8 = Information
ainsi de suite

Je veux une formule qui lise la cellule si elle est vide qu'elle passe à
celle juste en dessous et dès qu'elle trouve une cellule remplie (Par Ex.
A5)

qu'elle recopie cette cellule dans la vide.

Merci d'avance



Avatar
docm
J'ai oublié de faire monter les éléments de la colonne B:
Correction.

Sub Supprimer_les_cellules_vides_Colonnes_A_et_B()
NbreDeVides = 0
NumeroCombler = 0
ReDim LignesVides(NbreDeVides)
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c = 0 And c.Offset(0, 1) = 0 Then

NbreDeVides = NbreDeVides + 1
ReDim Preserve LignesVides(NbreDeVides)
LignesVides(NbreDeVides) = c.Address
Else
If NbreDeVides > NumeroCombler Then
NumeroCombler = NumeroCombler + 1
Range(LignesVides(NumeroCombler)) = c.Value
Range(LignesVides(NumeroCombler)).Offset(0, 1) = c.Offset(0, 1).Value
c.Value = ""
c.Offset(0, 1).Value = ""
NbreDeVides = NbreDeVides + 1
ReDim Preserve LignesVides(NbreDeVides)
LignesVides(NbreDeVides) = c.Address
End If
End If
Next
End Sub

"docm" a écrit dans le message news:
#
Bonjour Benoît

Si tu veux ne laisser aucune ligne vide en colonnes A et B:

Sub Supprimer_les_cellules_vides_Colonnes_A_et_B()
NbreDeVides = 0
NumeroCombler = 0
ReDim LignesVides(NbreDeVides)
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c = 0 And c.Offset(0, 1) = 0 Then
NbreDeVides = NbreDeVides + 1
ReDim Preserve LignesVides(NbreDeVides)
LignesVides(NbreDeVides) = c.Address
Else
If NbreDeVides > NumeroCombler Then
NumeroCombler = NumeroCombler + 1
Range(LignesVides(NumeroCombler)) = c.Value
c.Value = ""
NbreDeVides = NbreDeVides + 1
ReDim Preserve LignesVides(NbreDeVides)
LignesVides(NbreDeVides) = c.Address
End If
End If
Next
End Sub

docm

"Benoît" a écrit dans le message news:

Je n'arrive pas à remplir des cellules vides à partir de données qui se
trouvent dans des cellules en dessous.

A1 et B1 vide
A2 et B2 vide
A3 et B3 vide
A4 et B4 vide
A5 = 901000 et B6 = Accueil
A6 et B6 vide
A7 et B7 vide
A8 = 902000 et B8 = Information
ainsi de suite

Je veux une formule qui lise la cellule si elle est vide qu'elle passe à
celle juste en dessous et dès qu'elle trouve une cellule remplie (Par
Ex.


A5)
qu'elle recopie cette cellule dans la vide.

Merci d'avance