Copier des champs condition if avec deux boucles

Bonjour la communauté :) J'espère que vous allez bien.

S'il vous plait de m'aider pour effectuer cette manoeuvre sur une feuille Excel en appuyant sur un bouton : Début Colonne A1 jusqu'à M1

capture 10

Le tableau de gauche, je l'alimente via un userForm (Combobox et ListBox OK pas de problème). le résultat attendu est celui à droite : Devant chaque ligne de compte (Unique) viennent s'afficher à la suite les fournisseurs un pas un.

vraisemblablement il faudrait passer par deux boucles mais je n'ai pas su comment les placer. Voici mon code qui ne marche pas biensûr :

Sub CopierCompte()

Dim Col As Integer, j As Integer

With Sheets("F4")

    For j = 2 To .Cells(Rows.Count, 1).End(xlUp).Row

        If .Cells(j, 2) = .Cells(j, 8) And .Cells(j, 1) <> "" Then

            For Col = 9 To 13

                If .Cells(j, Col) = "" Then

                    .Cells(j, 2).Copy
                    .Cells(j, Col).¨Paste
            Exit For

        End If

    Exit For

End Sub

A vrai dire je rencontre une grande difficulté pour alterner et placer les : Next i, Exit For, End If ....

Peut-être en appliquant cet exemple avec sa solution j'apprendrais bien ceci.

Merci d'avance et agréable journée:)

Me

Bonjour

Un fichier est TOUJOURS le bienvenu...

Sub CopierCompte()
 Dim Col As Integer, j As Integer
 With Sheets("F4")
    For j = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        If .Cells(j, 2) = .Cells(j, 8) And .Cells(j, 1) <> "" Then
            For Col = 9 To 13
                If .Cells(j, Col) = "" Then
                    .Cells(j, 2).Copy
                    .Cells(j, Col).¨Paste
               endif
            next col
        End If
    next j
 end with
End Sub

A+ François

Cher François,

Merci pour votre réponse :) Mais voici ce que m'a donné votre code :

capture 11

Le code étant le suivant :

Sub CopierCompte()
 Dim Col As Integer, j As Integer
 With Sheets("F4")
    For j = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        If .Cells(j, 2) = .Cells(j, 8) And .Cells(j, 1) <> "" Then
            For Col = 9 To 13
                If .Cells(j, Col) = "" Then
                    .Cells(j, 1).Copy
                    .Cells(j, Col).PasteSpecial Paste:=xlPasteValues
               End If
            Next Col
        End If
    Next j
 End With
End Sub

Sinon voici le fichier excel en question. C'est la feuille F4. Je pense qu'après la boucle Col il faudra faire Exit For et repasser de nouveau à la boucle i ... je vais essayer de mon côté aussi.

Merci :)

6test2.xlsm (46.65 Ko)

Bonjour

Ci joint ma solution mais pourquoi ne pas copier directement de l'userform au bon endroit

8test2.xlsm (45.34 Ko)

A+ François

Bonjour François,

Merci encore pour ton aide. En fait comme je suis là pour apprendre, j'aimerais pouvoir manipuler le if avec deux boucles sur les feuilles Excel même :)

Bonjour

Tu ne peux pas utiliser 2 boucles

il y a une boucle pour les colonnes A et B

il y a une boucle pour les colonnes

il y une boucle pour la colonne H

A+ François

Merci beaucoup François c'est Nickel :)

Rechercher des sujets similaires à "copier champs condition deux boucles"