IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Recherche encore et encore !


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut Recherche encore et encore !
    Bonjour à tous !!
    J'ai un petit petit casse-tête que je vous expliquerai après le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Sub Recherche()
    '
    ' Recherche Macro
    '
     
    '
    Dim i As Integer
    Dim ii As Integer
    Dim iii As Integer
     
    Sheets("Creation").Select
     
     For i = 11 To Sheets("Creation").Cells(i, 3).End(xlUp).Row ' Boucle qui lis tout les articles
        Sheets("MMS015").Select
        For ii = 2 To .Range("B65536").End(x1Up).Row
        'Boucle qui lis tout les articles dans la feuilles MMS015
            If Sheets("MMS015").Cells(ii, 2).Value = Sheets("Creation").Cells(i, 3).Value Then
            'on a trouvé le même article dans les deux feuilles
                If Sheets("MMS015").Cells(ii, 4).Value = Sheets("Creation").Cells(i, 5).Value Then
                ' regarder si les mêmes articles ont les même unités de base(unité de base ex : PCE, KG; elles se trouvent deux colonnes après)
                    Sheets("Creation").Cells(i, 1).Value = "OK" ' mettre OK dans la première colonne
                    Next i ' Alors recherche un autre article
                End If
            Next ii  ' incrémenter jusqu'à avoir terminé la liste de tout les mêmes articles
            End If
        Next ii
     
     Next i
     For iii = 11 To Sheets("Creation").Cells(iii, 1).End(x1Up).Row ' Mettre des KO dans tous les articles non traités
        If Sheets("Creation").Cells(iii, 1).Value = "" Then
           Sheets("Creation").Cells(iii, 1).Value = KO
        End If
     
     Next iii
     
    End Sub
    '-----------------------------------------------
    J'ai commenté le code pour une meilleure compréhension

    Je code un peu "in the dark" car je n'arrive pas à compiler ! J'ai une référence incomplète ou non qualifiée !

    Quelqu'un peu m'aider ?

    Mais ne partez pas tout de suite car j'aurai surement d'autres problèmes dès que sa compilera !!

    J'ai commenté le code pour une meilleure compréhension

    Je code un peu "in the dark" car je n'arrive pas à compiler ! J'ai une référence incomplète ou non qualifiée !

    Quelqu'un peu m'aider ?

    Mais ne partez pas tout de suite car j'aurai surement d'autres problèmes dès que sa compilera !!

    sureDébutant en VBA

  2. #2
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut Salut
    Merci beacoup !
    Je vais corriger tout sa...Je remarque que j'ai fais ce code avec aucune logique.

    Encore merci
    A++

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut Salut !
    En faite je vais tout de même expliquer mon problème, voilà :

    - j'ai sur une feuille(Creation) excel une liste d'articles (Il n'y a pas de doublon)
    - sur une autre feuille (MMS015) une autres listes d'articles (il y a des doublons)

    J'aimerais, si possible, lire article par article dans la feuille Creation et pour chaque article chercher l'article correspondant(et tout ses doublons) dans la feuille (MMS015) puis comparer deux cellules qui se trouve à droite de l'article sur une autre colonne donc.

    et finalement mettre un OK sur la colonne A des articles traité et KO si ils n'ont pas été traités.

    Est-ce qu'avec ce code j'en suis loin du compte !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub Recherche()
    '
    '
    '
     
    '
    Dim i As Integer
    Dim ii As Integer
    Dim iii As Integer
     
    Sheets("Creation").Select
     
     For i = 11 To Sheets("Creation").Cells(i, 3).End(xlUp).Row
        Sheets("MMS015").Select
        For ii = 2 To .Range("B65536").End(x1Up).Row
            If Sheets("MMS015").Cells(ii, 2).Value = Sheets("Creation").Cells(i, 3).Value Then 'on a trouvé le même article dans les deux feuilles
                If Sheets("MMS015").Cells(ii, 4).Value = Sheets("Creation").Cells(i, 5).Value Then ' si l'unité de base correspond
                    Sheets("Creation").Cells(i, 1).Value = "OK" ' mettre OK dans la première colonne
                End If
            End If
        Next ii
     
     Next i
     For iii = 11 To Sheets("Creation").Cells(iii, 1).End(x1Up).Row
        If Sheets("Creation").Cells(iii, 1).Value = "" Then
           Sheets("Creation").Cells(iii, 1).Value = KO
        End If
     
     Next iii
     
    End Sub
    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut Résolution du problème (code correct)
    Bonjour,
    J'ai totalement modifié mon code est il fonctionne, le voici :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub Recherche()
    '
     
    Dim str1, str2, str3, str4 As String
     
     
     
     For i = 11 To Feuil3.UsedRange.Rows.Count  ' boucle de lecture de la feuille Creation
        For ii = 2 To Feuil4.UsedRange.Rows.Count ' boucle de lecture de la feuille MMS015
            str1 = Feuil3.Cells(i, 3)
            str2 = Feuil4.Cells(ii, 2)
            str3 = Feuil3.Cells(i, 5)
            str4 = Feuil4.Cells(ii, 4)
     
            If str1 = str2 Then ' les 2 articles correspondent
     
               If str3 = str4 Then ' les 2 unités correspondent
                    Feuil3.Cells(i, 1) = "OK"
               Else
                    Feuil3.Cells(i, 1) = "KO"
               End If
     
            End If
     
        Next ii
     Next i
     
    End Sub
    Il lis un numéro d'article (dans mon cas) dans une feuille (sans doublons) et recherche dans une autre feuille ou il se trouve (feuille avec doublons) puis il compare l'unité de base de l'article qui se trouve dans une autre colonne. Si l'unité de base existe dans les deux feuilles alors sa sera "OK" sinon "KO"

    J'éspère qu'il vous sera utile un jour !
    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. filtre et publipostage : encore et encore
    Par sebinator dans le forum VBA Access
    Réponses: 0
    Dernier message: 23/01/2008, 18h49
  2. recordcount Encore et encore
    Par gratesnif dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/10/2007, 21h56
  3. Lecture seule ! Encore et encore !
    Par nounours25 dans le forum Access
    Réponses: 5
    Dernier message: 13/01/2007, 13h13
  4. [VB.NET] Controle (encore et encore)
    Par Emcy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/03/2005, 09h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo