Boucle while - Aide pour une débutante

Bonjour à tous,

Je suis débutant sur VBA, je me forme en partie grâce à internet et en enregistrant des macros pour les comprendre et les reproduire... c'est assez lent comme méthode :)

Ce que je cherche a faire est très simple et pourtant je ne trouve pas la solution, voila pourquoi je sollicite votre aimable secours...

J'ai des données dans ma colonne B et un numéro de serie dans une cellule R10.
Je voudrais créer une boucle WHILE qui TANT QUE B n'est pas vide, la macro recopie R10 dans A....

C'est simple, mais sans les réflexes VBA c'est très très compliqué :)
Merci pour votre aide

5 réponses

  1. .Range("A" & li).FormulaR1C1 = "=+IF(OR(RC[-1]=20,RC[-1]=40),IF(RC[-1]=20,1,2),0)"

    Tu es en colonne A et RC[-1] fait appel à la colonne précédente, soit la colonne avant A, et là il n'y en a pas
    Pour tester la colonne B le mettrai plutôt RC[+1]

    Cdlmnt
    1. C'est bon j'ai trouvé il y avait plein d'erreur mais ca marche :)
      Merci en tout cas
      1. Voici mon code et qd je le lance il me surligne le RANGE de ma deuxieme boucle alors qu'avant de mettre les deux boucles d'affilé ca marché bien

        Sub TEUformule()
        '
        ' FORMULE TEU

        ' Définition des constantes pour n*VOYAGE

        Const NF = "DATABASE"
        Const lideb = 2

        Const celns = "S10"
        Dim li As Long, noserie
        With Sheets(NF)
        noserie = .Range(celns).Value
        li = lideb

        ' Définition des constantes pour formule TEU

        Const lidebteu = 2
        lit = lidebteu

        'Creation de la colonne TEU
        Columns("G").Select
        Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        Range("G1").Select
        ActiveCell.FormulaR1C1 = "TEU"

        'Début de la boucle - jusqua vide

        While .Range("F" & lit) <> ""
        .Range("G" & lit).FormulaR1C1 = "=+IF(OR(RC[-1]=20,RC[-1]=40),IF(RC[-1]=20,1,2),0)"

        'ligne +1
        lit = lit + 1
        Wend
        End With

        ' NUMERO DE VOYAGE

        'Debut de la boucle - jusqua cells vide

        While .Range("B" & li) <> ""
        .Range("A" & li).Value = noserie

        'ligne +1
        li = li + 1
        Wend

        End With

        End Sub
        1. Super ! Merci bcp :)

          J'ai exactement la meme manip a faire mais a la place d'un num de série, je voudrais mettre une formule

          ce que j'ai essayé de faire en remplaçant :

          While .Range("B" & li) <> ""
          .Range("A" & li).FormulaR1C1 = "=+IF(OR(RC[-1]=20,RC[-1]=40),IF(RC[-1]=20,1,2),0)"
          li = li + 1

          Wend
          End With
          End Sub

          C'est correct ?
          1. Bonjour

            Un exemple

            Option Explicit

            Const NF = "Feuil1"
            Const lideb = 4
            Const celns = "R10"

            Public Sub Kopie()
            Dim li As Long, noserie
            With Sheets(NF)
            noserie = .Range(celns).Value
            li = lideb
            While .Range("B" & li) <> ""
            .Range("A" & li).Value = noserie
            li = li + 1
            Wend
            End With
            End Sub

            Cdlmnt