Boucle remplissage interlignes

Résolu
Yoakim -  
 Yoakim -
Bonjour,

Je me tord l'esprit depuis ce matin sur une boucle qui ne me semble pas si compliquée que cela...

Je souhaite copier la valeur de la précédente cellule supérieure renseignée dans un ou des interlignes vides. J'ai comme repère de fin de boucle une valeur spécifiée dans autre colonne.

Exemple :

A1 = Toto
A2 = vide
A3 = Tutu
A4 = vide
A5 = vide
A6 = Tata
A7 = Vide
B7 = Valeur spécifiée

Je souhaiterai alors que jusqu'à ce la valeur spécifiée soit atteinte, A2 = Toto, A4 & A5 = Tutu, A7 = Tata.

Merci d'avance pour votre aide !

1 réponse

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    A adapter au besoin.

    Sub CompleteCelVide()
    
    Dim ws As Worksheet
    Dim lig As Long

    Set ws = Worksheets(1)
    lig = 1

    While ws.Range("A" & lig).Value <> ws.Range("B7").Value
    If ws.Range("A" & lig + 1) = "" Then
    ws.Range("A" & lig + 1) = ws.Range("A" & lig)
    End If
    lig = lig + 1
    Wend

    End Sub

    :0)
    0
    1. Yoakim
       
      Super ! Merci Polux31,

      Après des heures de torture, cela fonctionne nicquel en sachant que j'ai adapaté, car en fait, sur ma feuille "A" et en fait "B" et "B" est en fait "C", et que je ne sais pas à l'avance sur quelle ligne de la colonne "C" sera située la valeur spécifiée déclanchant la fin de ma boucle.

      Sub CompleteCelVide()

      Dim ws As Worksheet
      Dim lig As Long

      Set ws = Worksheets(1)
      lig = 1
      Range("b3").Select
      Do While ws.Range("B" & lig).Offset(0, 1).Value <> "Pages 1/1"
      If ws.Range("B" & lig + 1) = "" Then
      ws.Range("B" & lig + 1) = ws.Range("B" & lig)
      End If
      lig = lig + 1
      Loop

      End Sub
      0