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 :

Recherche d'une valeur contenu dans les cellules de deux colonnes


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 12
    Par défaut Recherche d'une valeur contenu dans les cellules de deux colonnes
    Bonjour,

    Tout d'abord merci à tous ceux qui viendront m'aider

    Je voudrais rechercher une valeur qui peut se trouver dans deux colonnes (que je demande via une textbox). Je voudrais récupérer la ligne, créer une feuille qui porte le nom de mon mot pour ensuite pouvoir mettre toutes les lignes ou mon mot est trouvé !

    je pense que c'est pas hyper compliqué. Je bloque juste un peu et sur un truc tout bête, le Ubound de mon tableau ...

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Private Sub CommandButton1_Click()
    Dim Tbl() As Variant
    Dim PlageDeRecherche As Range
    Dim Trouve As Range
    Dim I As Long
    Dim Adr As String
    Dim mot, NOM As String
    Dim dico As Object
     
    lettrecolonnejournal = journal.Text
    valeurjournal = Asc(UCase(lettrecolonnejournal)) - 64 'Demande première colonne
     
    lettrecolonneecriture = ecriture.Text
    valeurecriture = Asc(UCase(lettrecolonneecriture)) - 64 'Demande deuxième colonne 
     
     
    Application.DisplayAlerts = False 'Gain de temps lors de l'execution
    NOM = UCase(TextBox1.Value)'Mise en majuscule 
     
    If FeuilleExiste(NOM) = True Then 'Module pour vérifier la présence de la feuille 
        MsgBox ("La feuille " & NOM & " existe déja !")
    GoTo line2
    End If
     
    Sheets.Add.Name = NOM 'Ajout de la feuille 
     
     
    line2:
     
    mot = "*" & TextBox1.Value & "*" 'les étoiles pour trouver dans les cellules 
     
    With Worksheets("FEC"):
     Set Plage = Union(.Range(.Cells(2, valeurjournal), .Cells(.Rows.Count, valeurjournal)), .Range(.Cells(2, valeurecriture), .Cells(.Rows.Count, valeurecriture))): End With ' recherche dans les deux colonnes 
     
        Set Trouve = Plage.Find(mot, LookIn:=xlValues)
        'PlageDeRecherche.Find(mot, , xlValues, xlWhole)
     
        If Not Trouve Is Nothing Then
     
            Adr = Trouve.Address
     
            Do
     
                I = I + 1
                ReDim Preserve Tbl(I)
                Tbl(I) = Trouve.Row
     
     
                Set Trouve = Plage.FindNext(Trouve)
     
            Loop While Trouve.Address <> Adr
     
            'Attention, si la ligne est cachée, la valeur ne sera pas trouvée !
     
            For Z = 1 To UBound(Tb1) '' Ça plante et me mets incompatibilité de type...
     
                Sheets("FEC").Rows(Tbl(I)).EntireRow.Copy
                'Sheets("FEC").Cells(ligne, 1).EntireRow.Copy
                Sheets(mot).Select
                a = a + 1
                Sheets(mot).Cells(a, 1).EntireRow.Select
                ActiveSheet.Paste
            Next
     
        End If
     
     
    End Sub

    Merci à tous ceux qui proposeront des solutions

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Une solution est possible sans boucle en passant par les filtres avancés, je te conseille la lecture de ce tuto:https://philippetulliez.developpez.c...dvancedfilter/
    Vu que tu cherches sur deux colonnes tu devras passer par un critère calculé


    Pour ce qui est de ton erreur, j'ai l'impression que tu n'utilise pas la bonne variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Tbl() As Variant
    UBound(Tb1)
    Ton tableau se nomme tb "L" puis tu utilise tb "un"

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/02/2014, 12h51
  2. [XL-2007] recherche d'une valeur texte dans une plage de cellules
    Par blackstrange dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 13/07/2012, 16h26
  3. Réponses: 24
    Dernier message: 23/12/2011, 16h20
  4. comparer deux chaines contenues dans les cellules de deux tableaux
    Par ellewided dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 22/07/2009, 11h03
  5. Réponses: 10
    Dernier message: 05/02/2008, 14h37

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