Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2011, 18h47   #1
Invité régulier
 
Inscription : octobre 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 56
Points : 9
Points : 9
Par défaut comparaison colonnes VBA

Bonjour Tout le monde,

Voila mon problème, j'aimerais comparer 2 colonnes excel de type string en VBA pour me faciliter la tâche au travail.

J'ai réalisé le code suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub tri()
Dim compar As Boolean
For i = 1 To 300
 
            j = 1
 
            Do While Range("A" & i).Value <> Range("E" & j).Value And i <= 300
                test = False
                j = j + 1
 
                    If Range("A" & i).Value = Range("E" & j).Value Then
                        compar = True
                        Range("H" & i).Value = "ok"
                    Else
                        Range("H" & i).Value = "Introuvable"
                    End If
 
            Loop
 
    Next
 
 
End Sub


Si le champ de ma colonne "A" d'indice I est introuvable, le code s'arrête et ne passe pas à l'indice supérieur. Comment faire? Quelqu'un peut-il m'aider ?

En vous remerciant par avance,
Ced39300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 19h27   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonsoir,

Essaie :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub tri()
For i = 1 To cells(Rows.Count, 1).End(xlUp).Row
 
            j = 1
 
            For j = 1 To cells(Rows.Count, 5).End(xlUp).Row
 
                    If Range("A" & i).Value = Range("E" & j).Value Then
                        Range("H" & i).Value = "ok"
                        Exit For
                    Else
                        Range("H" & i).Value = "Introuvable"
                    End If
 
            Next
 
    Next
 
 
End Sub
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/10/2011, 19h34   #3
Invité régulier
 
Inscription : octobre 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 56
Points : 9
Points : 9
Bonsoir,

J'ai remplacé mon indice de ma boucle DO "i<=300" par "j<=300", ce qui paraît plus logique ^^

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub tri()
Dim test As Boolean
For i = 1 To 300
            
            j = 1
            
            Do While Range("A" & i).Value <> Range("E" & j).Value And j <= 300
                test = False
                j = j + 1
                
                    If Range("A" & i).Value = Range("E" & j).Value Then
                        test = True
                        Range("H" & i).Value = "ok"
                    Else
                        Range("H" & i).Value = "Introuvable"
                    End If
                    
            Loop
                
    Next


End Sub
Ca fonctionne mais peut être qu'il y aurait mieux à faire. Je vais essayer ta proposition.

Merci pour ta réponse,
Ced39300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h04.


 
 
 
 
Partenaires

Hébergement Web