[VBA] Boucle récup valeur

Résolu
Bonjour,

Voila maintenant je revien pour une boucle qui parcour une colonne ( la colonne C de la feuill1) et qui récupére toutes les valeurs de cette colonne (sachant qu'on ne connait pas exactement le nombre de ligne..) et qui les écris dans la colonne C de la feuill2.

Merci d'avance



--
Digsaw
'Avoir une section fumer dans un restaurant, c'est comme avoir une section pisseur dans une piscine !'

2 réponses

  1. Modérateur
    Bonjour,
    Dim Lig As Long, DrLig As Long
    With Sheets("Feuil1")
        DrLig = .Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row
        For Lig = 2 to DrLig
            If .Cells(Lig, 3).Value <> "" Then
                Sheets("Feuil3").Cells(Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row + 1, 3).Value = .Cells(Lig, 3).Value
            End If
        Next Lig
    End With

    ça te va?
    1. Sa me va parfaitement ! Merci beaucoup pour ton aide ! Et ta rapidité !

      Si j'ai besoin je peux te MP ? car je suis une vrai quiche en VBA.. Merci encore
      1. Modérateur
        Pour les MP, tu peux bien sur, mais c'est tellement plus sympa de faire partager à tous...
      2. Okok tu as raison !

        Alors voici ... ^^

        C'est la même chose que tout à l'heure.. sauf que lorsque la boucle parcour la colonne 7 de la feuille 1 et qu'il trouve un x il faut que sa écrive dans la colonne 8 de la feuille 2 un : 1 et lorsque il ne trouve rien il écrit un 4.. si 5 cases vides sont trouvées d'affilées la boucle se termine c'est que c'est la fin de la colonne..
      3. Modérateur
        1- si 5 cases vides sont trouvées d'affilées la boucle se termine c'est que c'est la fin de la colonne.. Ben non. La fin de la colonne c'est la ligne de la dernière cellule non vide... En VBA : Columns(N°decolonne).Find("*", , , , xlByColumns, xlPrevious).Row
        2- il s'agit juste d'un test If blabla then...
        Donc :
        Dim Lig As Long, DrLig As Long
        With Sheets("Feuil1")
            DrLig = .Columns(7).Find("*", , , , xlByColumns, xlPrevious).Row
            For Lig = 2 to DrLig
                If UCase(.Cells(Lig, 7).Value) = "X" Then 'ici on compare en forçant les majuscules pour éviter les problèmes de saisie et casse...
                    Sheets("Feuil2").Cells(Lig, 8).Value = 1
                ElseIf .Cells(Lig, 7).Value = "" Then
                    Sheets("Feuil2").Cells(Lig, 8).Value = 4
                End If
            Next Lig
        End With
      4. Super merci !
      5. Modérateur
        As tu pris la peine de comprendre le code ou juste fais un copié/collé?