VBA + méthode find

Fermé
slai - 9 sept. 2005 à 11:00
 dom - 25 juin 2007 à 11:26
salut,

je veux effectuer une rechche dans une feuille excel avec deux critères (ex : trouve la celule qui contient * et A)

Dans vba, je connais la méthode Find , mais apparemment, elle ne m'autorise qu'un critère de recheche.

Avez vous une sol dans vba sans passer par les filtres d 'exce l ?

Merci !

2 réponses

Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 528
10 sept. 2005 à 19:04
Salut slai,

Tu peux essayer avec la fonction Find d'Excel.
La macro ci-dessous fonctionne. Adapte la "Plage" à ton cas perso.
Quand je trouve, je fais un "Activate" de la cellule. Mets-y ce que tu veux.

Sub Cherche()

  Dim Plage   As Range
  Dim Cellule As Range
  Dim Posit   As Long
  
  On Error Resume Next
  Set Plage = Sheets("Feuil1").Range(Cells(1, 1), Cells(12, 8))
  For Each Cellule In Plage
    If Cellule.Value <> "" Then
      Posit = Application.WorksheetFunction.Find("*", Cellule.Value)
      If Posit > 0 Then
        Posit = Application.WorksheetFunction.Find("A", Cellule.Value)
      End If
      If Posit > 0 Then
        Cellule.Activate
        Exit Sub
      End If
    End If
  Next
  
End Sub
7
Bonjour Armojax

Pourrais-tu stp m'aider pour créer la programmation suivante dans VBA-Excel ?

Voici mes données dans une feuille excel

compte Montant Numéro d'écriture
1002 100 238
1004 -100 238
1005 -100 238
1005 100 238
1002 150 612
1001 -100 612
1003 -50 612
1005 -150 612
1005 150 612

j'aimerai que pour chaque écriture comportant le même numéro (ici 238 et 612), le système aille me chercher le montant correspondant au compte 1002 (ici 100 pour la 1ere écriture et 150 pour la deuxième) et qu'il me le recopie dans une autre feuille (en fait il faudrait qu'il me recopie toutes les informations de cette ligne (1002 100 238)
Puis il va me chercher le numéro de compte correspondant au même montant mais en signe opposé (soit -100 pour l'écriture 238 et -150 pour l'écriture 612) et il me le recopie sous l'info copiée auparavant
Mais si jamais j'ai 1 compte qui a comme montant celui qui est <0 et le >0, je ne le veux pas (ex ici dans l'écriture 238 : je ne veux pas du 1005 car il a 100 et -100, idem dans la 612)
Ensuite il faudrait que le système soit capable de trouver toutes les combinaisons possible dans une seule écriture pour égaler le montant trouvé en 1002 (mais en sens opposé)de cette même écriture
Ici par exemple dans l'écriture 612, 1002 = 150 et l'équivalent c'est 1001 pour -100 + 1003 pour -50
Si on pouvait rajouter un contrôle sous résultat trouvé par écriture pour montrer que la somme des 2 = 0, ce serait parfait

Merci beaucoup par avance
A bientôt j'espère
0
WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
10 sept. 2005 à 09:33
;-)

Et une fois trouvées, tes cellules, tu veux faire quoi ?

(oui, il y a une solution à tout...)

;-)
1