MACRO EXCEL

Résolu
masawi86 Messages postés 27 Statut Membre -  
Decapsuleur Messages postés 50 Statut Membre -
Bonjour,

j'ai ce code :

Sub recherche_multiple()
Dim TBadress() As Variant
Dim Cherche, Ix As Long, PrRow
Dim Valeur_cherchee, texte_a_afficher As String
Valeur_cherchee = InputBox("Indiquez ici le texte que vous cherchez", "Texte recherché")
Set Cherche = Cells.Find(Valeur_cherchee)
If Not Cherche Is Nothing Then
PrRow = Cherche.Row
Do

ReDim Preserve TBadress(Ix)
TBadress(Ix) = Cherche.Row
Set Cherche = Cells.FindNext(Cherche)
Ix = Ix + 1
Loop While Not Cherche Is Nothing And Cherche.Row <> PrRow
End If
For Ix = 0 To UBound(TBadress)
texte_a_afficher = texte_a_afficher & vbCrLf & " Ligne : " & TBadress(Ix) & " " & Valeur_cherchee
Next
MsgBox texte_a_afficher
End Sub

ce code fé une recherche multiple j'ai donné le nom et affiche les lignes ou se trouve ces lignes exemple : j'ai donnée SAP retourne L2 sap
L5 sap

mais moi je cherche ou place de donnée SAP o unix et lui retourné
lui donnée sons demandé ou début
exemple: L1 SAP
L2 UNIX
L3 ORACLE
L5 SAP

.
.
.

ET MERCI

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    Je n'ai pas tout compris : mais moi je cherche ou place de donnée SAP o unix et lui retourné
    lui donnée sons demandé ou début


    Et franchement, je ne dois pas être le seul...
    0
    1. masawi86 Messages postés 27 Statut Membre
       
      OUI
      lui donnée sons demandé ou début
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Alors ok : lui donnée sons demandé ou début veux surement dire que les données sont demandées au début,
      Mais : mais moi je cherche ou place de donnée SAP o unix et lui retourné J'ai beau essayé, je ne comprends pas!!
      Dis nous simplement ce que tu veux...
      0
    3. masawi86 Messages postés 27 Statut Membre
       
      SAP o unix il faut que trouve sous le code

      Sub recherche_multiple()
      Dim TBadress() As Variant
      Dim Cherche, Ix As Long, PrRow
      Dim Valeur_cherchee, texte_a_afficher As String

      *****Set Cherche = Cells.Find(SAP) *************
      ******Set Cherche = Cells.Find(UNIX) **********

      If Not Cherche Is Nothing Then
      PrRow = Cherche.Row
      Do
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Si j'ai bien compris, et rien n'est moins sur, tu veux lancer une recherche de plusieurs mots sur ta feuille et obtenir dans un msgbox les lignes ou l'on trouve ces mots.
      Si oui :
      Combien de mots au maximum?
      0
    5. masawi86 Messages postés 27 Statut Membre
       
      OUI
      6 MOTS
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Alors ceci te conviendrait il peut être?

    Sub recherche_vraiment_tres_tres_multiple()
    Dim valeurs, TBadress(), val As Variant
    Dim i, derlig, Ix As Integer
    Dim cherche As Range
    
    valeurs = Array("sap", "unix", "oracle") 'ajouter les valeurs que vous souhaitez chercher avec des virgules...
    
    derlig = Range("A65536").End(xlUp).Row ' à adapter également
    
    For i = 1 To derlig
        With ActiveSheet.Rows(i)
            For Each val In valeurs
                Set cherche = .Cells.Find(val)
                    If Not cherche Is Nothing Then
                        ReDim Preserve TBadress(Ix)
                        TBadress(Ix) = "Ligne " & cherche.Row & " " & val
                        Ix = Ix + 1
                    End If
            Next
        End With
    Next i
    For Ix = 0 To UBound(TBadress)
        texte_a_afficher = texte_a_afficher & vbCrLf & TBadress(Ix)
    Next
    MsgBox texte_a_afficher
    End Sub

    0
    1. masawi86 Messages postés 27 Statut Membre
       
      oui si ça merci sir
      0
    2. masawi86 Messages postés 27 Statut Membre
       
      j'ai besoin d'une macro vba qui lire les lignes de la feuille excel et affiche dans un MsgBox .

      si il y a dans la linge un texte crier a la forme de"Xnn"( c a d [A-Z][0-9][0-9]) retourner erreur SAP

      si il y a dans la linge "ORA-" retourner erreur ORACLE

      quand dans la ligne ne trouver ni "ORA-" ni le texte de la forme "Xnn" retourner erreur inconnu

      et merci

      svp aide moi
      0
    3. masawi86 Messages postés 27 Statut Membre
       
      svp j'ai besoin a tout le programme et ce programme affiche tout ligne ou mémé temp
      exemple:
      linge 1 SAP
      linge 2 ERREUR INCONNU
      linge 3 ORACLE
      linge 4 SAP
      .
      .
      .
      .
      0
    4. masawi86 Messages postés 27 Statut Membre
       
      slt
      j'ai ce programme mais quand j'ai exécuté il donne" erreur d'exécution
      l'indice n'appartient pas a la sélection "

      Sub recherche()
      Dim valeurs, TBadress(), val As Variant
      Dim i, derlig, Ix As Integer
      Dim cherche As Range

      valeurs = Array("[a-z]##")

      derlig = Range("A65536").End(xlUp).Row

      For i = 1 To derlig
      With ActiveSheet.Rows(i)
      For Each val In valeurs
      Set cherche = .Cells.Find(val)
      If Not cherche Is Nothing Then
      ReDim Preserve TBadress(Ix)
      TBadress(Ix) = "Ligne " & cherche.Row & " " & val
      Ix = Ix + 1
      End If
      Next
      End With
      Next i
      For Ix = 0 To UBound(TBadress)
      texte_a_afficher = texte_a_afficher & vbCrLf & TBadress(Ix)
      Next
      MsgBox texte_a_afficher
      End Sub
      svp personne m'aide
      0
    5. Zakapuce Messages postés 74 Statut Membre 7
       
      svp personne m'aide

      Parce que tu multiplies les sujets avec la même question et que tu ne prends pas la peine de lire les solutions ou pistes qui te sont données.

      Tu veux tout simplement que l'on fasse ton boulot.
      0