Parcourir une colonne A si les mots n’apparaissent pas dans la colonne D, l

Bonjour,

C’EST TRÈS TRÈS URGENT !

Je n’arrive pas à faire la phase 5 et 6 pourriez-vous m’aider ?

Je bloque sur la boucle :

If not .... is nothing then

Car je ne trouve pas l’inverse sachant que que je ne sais pas comment manipuler avec des lettres plutôt que des chiffres.

Merci d’avàce pour votre aide !

(Ce projet doit être rendu le lundi 13)

8bcbda34 a561 44a2 a9f9 108534cdec91

Bonjour,

Dans les forums d'entraide, ceci n'est pas bien vu : C’EST TRÈS TRÈS URGENT !

Les intervenants étant bénévoles ils n'ont pas à subir de pression !

If not .... is nothing then

Car je ne trouve pas l’inverse sachant que que je ne sais pas comment manipuler avec des lettres plutôt que des chiffres.

l'inverse est : If ... Is Nothing Then

Maintenant, si tu veux de l'aide, tu va faire un effort de bien expliquer ce que tu veux et nous dire où tu en es (montre le code que tu as déjà réalisé) et pas juste nous mettre sous le nez un extrait de ton devoir !

Bonjour Theze,

Merci pour la réponse à ma question.

Mon code pour la réponse 5 où je bloque c'est celui-ci :

Sub Creation_ColonneC()

Dim PlageCol_A As Range

Dim PlageCol_D As Range

Dim CelCol_A As Range

Dim CelCol_D As Range

With Worksheets("Feuil1")

Set PlageCol_A = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)) 'on définit l'emplacement de la colonne A

Set PlageCol_D = Range(Cells(1, 4), Cells(Rows.Count, 4).End(xlUp)) 'on définit l'emplacement de la colonne D

End With

For Each CelCol_D In PlageCol_D

Set CelCol_A = PlageCol_A.Find(CelCol_D, , xlValues, xlWhole)

If Not CelCol_A Is Nothing Then

CelCol_D.Offset(0, -1) = CelCol_A

End If

Next CelCol_D

End Sub

Dans mon code ce qui est surligneur en gras ne semble pas fonctionner. Du coup je ne sais pas pourquoi changer en if is nothing then ne débloque pas mon problème.

Toutes mes excuses pour la maladresse "ceci est très urgent" et l'oubli pour mon code.

Merci d'avance !

Lampion.

Donc, tu recherches en colonne A les mots situés en colonne D et si le mot est trouvé, il est inscrit en colonne C en regard de ce dernier ! Ton code fonctionne c'est quoi le problème ?

Tu veux qu'il soit inscrit autre chose si le mot n'est pas trouvé ?

Sub Creation_ColonneC()

    Dim PlageCol_A As Range
    Dim PlageCol_D As Range
    Dim CelCol_A As Range
    Dim CelCol_D As Range

    'ne pas oublier les points devant les objets pour bien les "parenter" à l'objet "Worksheets()"
    With Worksheets("Feuil1")

        Set PlageCol_A = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)) 'on définit l'emplacement de la colonne A
        Set PlageCol_D = .Range(.Cells(1, 4), .Cells(Rows.Count, 4).End(xlUp)) 'on définit l'emplacement de la colonne D

    End With

    For Each CelCol_D In PlageCol_D

        Set CelCol_A = PlageCol_A.Find(CelCol_D.Value, , xlValues, xlWhole)

        If Not CelCol_A Is Nothing Then CelCol_D.Offset(0, -1).Value = CelCol_A.Value Else CelCol_D.Offset(0, -1).Value = "Pas trouvé !"

        End If

    Next CelCol_D

End Sub

Tu veux continuer la recherche de ce mot dans le cas où il apparaît plusieurs fois dans la colonne A ?

Sub Creation_ColonneC()

    Dim PlageCol_A As Range
    Dim PlageCol_D As Range
    Dim CelCol_A As Range
    Dim CelCol_D As Range
    Dim Adr As String
    Dim Total As Integer

    With Worksheets("Feuil1")

        Set PlageCol_A = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)) 'on définit l'emplacement de la colonne A
        Set PlageCol_D = .Range(.Cells(1, 4), .Cells(Rows.Count, 4).End(xlUp)) 'on définit l'emplacement de la colonne D

    End With

    For Each CelCol_D In PlageCol_D

        Set CelCol_A = PlageCol_A.Find(CelCol_D.Value, , xlValues, xlWhole)

        If Not CelCol_A Is Nothing Then

            'mémorise l'adresse de la cellule afin de sortir de la boucle
            Adr = CelCol_A.Address

            Do

                'inscrit la valeur en colonne C
                CelCol_D.Offset(0, -1).Value = CelCol_A.Value

                'incrémente
                Total = Total + 1

                'continue la recherche
                Set CelCol_A = PlageCol_A.FindNext(CelCol_A)

                'inscrit entre parenthèses le nombre de fois que le mot est trouvé en colonne A
                CelCol_D.Offset(0, -1).Value = CelCol_D.Offset(0, -1).Value & " (" & Total & ")"

            Loop While CelCol_A.Address <> Adr

            Total = 0

        End If

    Next CelCol_D

End Sub

Hey c'est encore moi. Merci pour la réactivité !

En fait ce que je cherche c’est insérer dans une colonne C les mots de la colonne A qui n’appartient pas à la colonne D.

Alors, inverses les plages :

Sub Creation_ColonneC()

    Dim PlageCol_A As Range
    Dim PlageCol_D As Range
    Dim CelCol_A As Range
    Dim CelCol_D As Range

    'ne pas oublier les points devant les objets pour bien les parenter à l'objet "Worksheets()"
    With Worksheets("Feuil1")

        Set PlageCol_A = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)) 'on définit l'emplacement de la colonne A
        Set PlageCol_D = .Range(.Cells(1, 4), .Cells(Rows.Count, 4).End(xlUp)) 'on définit l'emplacement de la colonne D

    End With

    For Each CelCol_A In PlageCol_A

        Set CelCol_D = PlageCol_D.Find(CelCol_A.Value, , xlValues, xlWhole)

        If CelCol_D Is Nothing Then CelCol_A.Offset(0, 2).Value = CelCol_A.Value

    Next CelCol_A

End Sub

Merci pour la réponse, ça marche toujours pas c'est très étrange.

Je ne sais pas si on se comprend bien, je te poste un classeur exemple où les mots de la colonne A qui ne se trouvent pas en colonne D seront inscrits dans la colonne C :

Merci beaucoup pour ton aide.

Je suis vraiment débutant, alors je vais essayer de copier coller ton code.

Mais il est possible aussi que j'ai mal importé mes documents word dans le fichier Excel. Je suis sous mac Excel 2016 et j'ai posté un autre sujet pour y remédier !

Bonjour,

Je n'ai pas de Mac donc je ne connais pas les particularités de VBA pour Mac !

Rechercher des sujets similaires à "parcourir colonne mots apparaissent pas"