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 04/07/2009, 18h32   #1 (permalink)
Futur Membre du Club
 
Date d'inscription: décembre 2004
Messages: 34
Par défaut .find avec plusieurs critères

bonjour

j'utilise ce bout de code pour rechercher la chaine de caractères "GO EXCELLIUM" dans une feuille

Code :
...
Do
    Set c = .Find(what:="GO EXCELLIUM", After:=ActiveCell, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False)
    If Not c Is Nothing Then
...
comment faire pour rechercher d'autres chaines de caracteres avec le meme code, (enfin dans la meme ligne) ??
yalefe est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/07/2009, 00h13   #2 (permalink)
Membre chevronné
 
Date d'inscription: juin 2008
Localisation: Pas loin de Versailles !
Âge: 24
Messages: 617
Par défaut

Salut,

Tu peux faire 2 .Find imbriqués ou passer par des boucles For.

En gros :

Code :
For i = 1 to 10
    If Range("A"&i) = "TRUC" AND Range("B"&i) = "MUCHE" Then
        'Ce que tu veux faire
    End if
Next
Bonne nuit !
__________________
DeaD
DeaD78 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/07/2009, 08h03   #3 (permalink)
Futur Membre du Club
 
Date d'inscription: décembre 2004
Messages: 34
Par défaut

merci de ta réponse

le For , j'ai pas trop envie de l'utiliser. Quand on compare le temps de traitement entre un For et un .find, y a pas photo...

je pensais qu'il y avait moyen de passer plusieurs parametres de recherche via un seul .find
Citation:
( du style ...
Code :
Do
    Set c = .Find(what:="GO EXCELLIUM" or "GO PREMIER",
cà m'aurait bien plu )
le probleme est que je dois extraire d'un fichier "cartes collaborateur" tous les prises carburant effectuées avec les cartes. Sachant qu'il y a dans mon fichier, 5 types de carburant ("GO EXCELLIUM" ; "GO PREMIER" ; "SP95 E10" ; "SUPER SP 98" ; "SUPER SP 95")

il va donc falloir que je fasse 5 recherches imbriquées avec chaque carburant
yalefe est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/07/2009, 08h43   #4 (permalink)
Expert Confirmé
 
Avatar de Krovax
 
Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
Par défaut

Pas 5 recherche imbrique mais 5 recherche a la suite si c'est un or
D'abord tous les "GO EXCELLIUM" puis les "GO PREMIER" puis les "SP95 E10" puis ....
tu peux le faire avec un seul find et une boucle sur un tableau

Code :
Dim i As Integer
Dim tableau(1 To 5) As String
tableau(1) = "GO EXCELLIUM"
tableau(2) = "GO PREMIER"
tableau(3) = "SP95 E10"
tableau(4) = "SUPER SP 98"
tableau(5) = "SUPER SP 95"
 
For i = 1 To 5
    Do
        Set c = .Find(tableau(i))
        If Not c Is Nothing Then
   ......
Next i
End Sub
Krovax est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 18h21.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.