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 mot dans colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par défaut Recherche mot dans colonne
    BONJOUR
    Je débute en vba, j'ai fait ce code qui cherche un mot dans une une colonne ( log, colonne I), et qui me l'affiche sur une autre page ( F1 )
    Le problème c'est qu'il m'affiche une erreur 1004
    Si vous avez une idée du problème
    Merci
    A+

    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub log()
     
    TEXTE = Sheets("log").Range("C:C")
    For J = 3 To 10
    Set CELluletrouve = Sheets("LOG").Range("I" & J).Find("FUEL") 'cherche les log Fuel
    Sheets("F1").Range("A" & J) = CELluletrouve 'copie de la variable dans la colonne A
    Sheets("F1").Range("G" & J) = J 'affichage du compteur en G
    Next J
    End Sub

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 46
    Par défaut
    Pas forcément besoin d'une macro pour faire ça.
    Tu peux chercher du côté de la fonction EQUIV d'Excel (cf aide d'Excel) pour ton compteur.

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,

    Je penses, en espérant que tes variables soient bien déclarées, que ta recherche provoque une erreur car "FUEL" n'existe pas :

    transformes ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub log()
     
    TEXTE = Sheets("log").Range("C:C")
    For J = 3 To 10
       Set CELluletrouve = Sheets("LOG").Range("I" & J).Find("FUEL") 'cherche les log Fuel
       If Not CELluletrouve Is Nothing Then
          Sheets("F1").Range("A" & J) = CELluletrouve 'copie de la variable dans la colonne A
          Sheets("F1").Range("G" & J) = J 'affichage du compteur en G
       End If
    Next J
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    c'est parce que tu as le nom de la feuille qui bloque, mais je n'ai pas approfondi le pourquoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set CELluletrouve = Range("i1:i10").Find("FUEL") 'cherche les log Fuel
    tu remarqueras la forme range (i1:i10) qui t'evite de faire une boucle inutile. le mot est directement dans la plage

    si tu dois avoir plusieur occurences il existe une forme de boucle tres rapide avec find mais je l'ai pas sous la main, mon aide fonctionne mal.
    je peux la trouver si tu as besoin. tu dis

    bon, c'est la boucle de mercaatog dont je parlais

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Étrange quand même cette recherche dans une seule cellule avec la méthode Find
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set CELluletrouve = Sheets("LOG").Range("I" & J).Find("FUEL") 'cherche les log Fuel
    Si tu veux boucler sur la colonne I de la feuille LOG et récupérer les données en feuille F1, ci joint code (presque issu de l'aide sur Find)
    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
    Sub log()
    Dim c As Range
    Dim PremTrouv As String
    Dim j As Long
     
    With Sheets("LOG").Range("I:I")
        Set c = .Find("FUEL", LookIn:=xlValues, LookAt:=xlPart)          'Ou LookAt:=xlwhole
        If Not c Is Nothing Then
            PremTrouv = c.Address
            Do
                j = j + 1
                With Sheets("F1")
                    .Range("A" & j) = c.Value                            'copie de la variable dans la colonne A
                    .Range("G" & j) = j                                  'affichage du compteur en G
                End With
                Set c = .FindNext(c)
            Loop Until c.Address = PremTrouv Or c Is Nothing
            Set c = Nothing
        End If
    End With
    End Sub
    Edit: fatigué aussi

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir mercatog,

    Étrange quand même cette recherche dans une seule cellule avec la méthode Find
    aie ! je n'ai meme pas fait gaffe à la plage de recherche, encore trop vite...

    Bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. Rechercher date dans colonne et renvoi la ligne correspondante
    Par rickgoz dans le forum Macros et VBA Excel
    Réponses: 36
    Dernier message: 28/10/2008, 18h29
  2. Problème recherche nombre dans colonne
    Par kanabzh29 dans le forum Excel
    Réponses: 10
    Dernier message: 25/09/2008, 13h33
  3. Recherche mot dans une URL
    Par nidecker dans le forum Linux
    Réponses: 3
    Dernier message: 11/09/2007, 18h20
  4. [C#] Rechercher Mot dans WebBrowser
    Par davasm dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/11/2006, 14h35
  5. Rechercher mot dans PDF
    Par xev74 dans le forum ASP
    Réponses: 7
    Dernier message: 20/10/2006, 16h22

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