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 :

[excel 2003] conparer 2 plages


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
    Octobre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 203
    Par défaut [excel 2003] conparer 2 plages
    Bonjour,

    J'ai une colonne A qui contient des phrases
    J'ai une colonne B qui contient des mots

    J'aimerais vérifier si un mot de B appartien à une des phrase de A.
    Je dois donc faire 2 boucles (enfin je crois):
    - une pour parcourire la colonne B
    - puis, pour chaque cellule de B, parcour de la colonne A pour vérifier s'il existe dans une des cellules.

    Voici mon 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
    Sub ChercheNom()
    
    Dim ZoneRecherche As Range
    Dim ZoneCritere As Range
    Dim r As Integer
    Dim c As Integer
    
    
    Set ZoneRecherche = Range("A1:A5")
    Set ZoneCritere = Range("D1:D3")
    
    r = ZoneRecherche.Count
    c = ZoneCritere.Count
    
    For i = 0 To r
        For j = 0 To c
        'Cells(i, 1).Activate
        'Cells(j, 4).Activate
        
        If InStr(1, Cells(i, 1), Cells(j, 4), 1) Then Cells(j, 4).Font.Color = RGB(150, 150, 250)
        Next j
    Next i
    End Sub
    Ca beug pour la fonction InStr
    Merci beaucoup pour votre aide

    claire

  2. #2
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Bonjour,

    Avec une boucle pour la recherche (colonne 2), tu peux t'en sorti en recherchant dans la plage ("A:A")
    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
     
            dim sh as Workbook
            dim c as range
     
            'Set ta workbook
     
            for i = 1 to 100
            Recherche = sh.Cells(i, 2)
            With sh.Range("A:A")
                Set c = .Find(Recherche, LookIn:=xlValues)
                If Not c Is Nothing Then
                    Temoin = True
                    'c.row donne la ligne
                Else
                    Temoin = False
                End If
            End With
            set c = nothing
            next i
    Si tu as des questions ou commentaires....

    Bonne journée

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 203
    Par défaut
    merci pour ta réponse rapide.
    Je comprends à peu près (ça fait longtemps que je n'ai pas fait du VBA, et jamais à très haut niveau) mais j'ai un petit souci:

    Pourquoi j'utilise Workbook et pas Worksheet?

    merci

  4. #4
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Hey hey hey
    bien vu

    C'est effectivement un erreur de ma part , c'est ça que ça fait faire deux choses en même temps!

    Tu as bien compris dans ce cas

    je m'en excuse!

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 203
    Par défaut
    j'ai cette erreure qui apparait :

    fonction ou variable attendue pour la ligne:
    je ne comprends cette ligne de code?
    merci pour ta patience

    claire

  6. #6
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut Les raisons du bug initial
    Pour progresser , il faut comprendre ses erreurs .
    Le problème du code initial vient du fait que les boucles For sont initialisées à 0
    For i = 0 To r
    For j = 0 To c
    et
    Cells(0 , 1) ou Cells(0, 4) fait planter le système.
    1ere mofif : remplacer for i = 1 to r et For j = 1 To c.

    2ème modif : la syntaxe de la fonction Instr n'est pas bonne :

    if instr ( debut , valeur1 , valeur2 ) > 0 then ..

    If InStr(1, Cells(i, 1).value, Cells(j, 4).value ) > 0 Then ..

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 203
    Par défaut
    merci beaucoup

    je vais tester!!

  8. #8
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 203
    Par défaut


    merci encore pour votre précieuse aide

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

Discussions similaires

  1. Excel 2003/Outlook2003: Transfert d'une plage de cellules
    Par Ipéfix dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/12/2008, 19h46
  2. Réponses: 9
    Dernier message: 20/09/2007, 12h55
  3. TExcelApplication - Excel 2003
    Par Leesox dans le forum Langage
    Réponses: 18
    Dernier message: 03/11/2005, 13h40
  4. [VB.NET] Problème avec un OptionButton dans Excel 2003
    Par alfprod dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/09/2004, 13h40
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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