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 :

Problème de syntaxe sur une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Par défaut Problème de syntaxe sur une macro
    Bonjour à tous,

    je cherche à écrire une macro toute simple, qui parcourt chaque ligne de la feuille et qui me sélectionne la cellule B de la ligne qui contiendra en B le texte requis.

    Voici la macro que j'ai construite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim i As Integer
    For i = 0 To 1500
    If Range("B" & i).Value = Garage Then Range("B" & i).Select
    Next i
    Ici, j'ai mis i pour 0 à 1500 parce que le nombre de lignes que j'utilise est dans cette plage. Et la condition que je cherche est le texte "Garage" dans ma colonne B.

    J'ai donc 2 problèmes :
    1. je ne suis pas sur du code .Value étant donné le contenu est du texte.
    2. Ceci dit, j'ai fait le test avec une condition numérique pour "stériliser" ce doute et la macro ne marchait toujours pas. Il y a donc une autre erreur dans ma macro.

    Il me renvoie une erreur du type :
    la méthode Range de l'objet Global a échoué

    Merci d'avance pour votre aide!

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    et en essayant comme ceci?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If sheets("machite").Range("B" & i).Value = Garage Then 
    sheets("machite").select
    Range("B" & i).Select
    end if

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Par défaut
    J'ai testé ta solution.
    Cela donne ça si je ne me suis pas trompé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i As Integer
    For i = 0 To 1500
    If Sheets("SAISIE").Range("B" & i).Value = Garage Then
    Sheets("SAISIE").Select
    Range("B" & i).Select
    End If
    Next i
    et cela me renvoie l'erreur 1004

    Merci bcp pour ta réponse rapide Mayekeul!

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Ici, j'ai mis i pour 0 à 1500 parce que le nombre de lignes que j'utilise est dans cette plage.
    Bonjour,

    Tu as une ligne qui porte le N° 0 dans ta Feuille Excel ?

    cordialement,

    Didier

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Par défaut
    Entièrement raison Ormonth.
    J'ai donc corriger, mais la cette fois quand je lance la macro, ca plante...

    J'ai un message d'erreur "Excel a rencontré un problème et a cessé de fonctionner". Plantage total et redémarrage d'Excel.

    J'avoue que je n'y comprends plus rien là....

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Si tu cherches le texte "Garage" la syntaxe devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Sheets("SAISIE").Range("B" & i).Value = "Garage" Then
    Ensuite, c'est bien d'avoir ajouter Sheets("SAISIE"), mais tu pourrais être plus précis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ThisWorkbook.WorkSheets("SAISIE").Range("B" & i).Value = "Garage" Then
    Puis, quand tu as trouvé la valeur, tu devrais ajouterENfin, tout cela se fait sans boucle avec la méthode Find.

    En espérant que cela t'aide,

    Cordialement,

    PGZ

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    La réponse de pgz vous a-t-elle apporté une solution ou une partie de cette solution ?

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heuh!!!
    bonjour

    si tu a qu'une seule occurrence a chercher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub recherche_le_mot_garage()
    With Worksheets("SAISIE").Range("b1:b1500")
        Set c = .Find("garage", LookIn:=xlValues)
        If Not c Is Nothing Then
    c.Select
    End If:End With:End Sub

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Teste avec ce qui suit et adapte. La proc inscrit l'adresse des cellules où est trouvé le mot "garage" dans la fenêtre d'exécution (Debug.Print Cel.Address) :
    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
     
    Private Sub Chercher()
     
    Dim Plage As Range
    Dim Cel As Range
    Dim Adr As String
     
        Set Plage = Range([B1], [B65536].End(xlUp))
     
        Set Cel = Plage.Find("Garage", , xlValues)
        If Not Cel Is Nothing Then
            Adr = Cel.Address
            Do
     
                Debug.Print Cel.Address
     
                Set Cel = Plage.FindNext(Cel)
            Loop While Adr <> Cel.Address
        Else
            MsgBox "Mot 'Garage' non trouvé !"
        End If
     
        Set Cel = Nothing
        Set Plage = Nothing
     
    End Sub
    Hervé.

Discussions similaires

  1. Problème sur une macro créée en VBA
    Par IAmByB dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/04/2014, 18h29
  2. Problème de débutant sur une macro
    Par cedric75015 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2014, 17h39
  3. [XL-2002] Problème de syntaxe sur une formule dans VBA
    Par beber_le_stagiaire dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/06/2009, 15h32
  4. VBA : problème sur une macros basé sur un SI
    Par PeaceMaker dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/04/2009, 22h54
  5. problème sur une macro pour une conversion en VB6.3
    Par Zoldick dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2008, 14h41

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