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 :

Traitement d'erreur dans une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut Traitement d'erreur dans une macro
    Bonjour tout le monde,

    j'ai un leger probleme avec une macro que j'ai code. En effet, elle s'execute a peu pres normalement jusqu'a ce qu'une erreur apparaisse. Malheureusement je comprend pas bien d'ou elle peut provenir.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        For Each E In STD.Range("G2:G" & STD.Cells(Rows.Count, 1).End(xlUp).Row)
            With Datenbasis.Range(Datenbasis.Cells(2, 1), Datenbasis.Cells(Datenbasis.Cells(Rows.Count, 1).End(xlUp).Row, 1))
        Set D = .Find(E.Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not D Is Nothing And Trim(D.Offset(0, 4).Value) = "x" Then
             E.EntireRow.Interior.Color = 10092543
            End If
        End With
    Next
    Cette boucle compare les noms presents dans les deux feuilles (Datenbasis et STD), puis si il y a un "x" associe au nom dans la ligne, il colorie en jaune la ligne de la feuille STD dans laquelle il y a le meme nom.

    j'ai mis en jaune ce que le compilateur me surligne.

    merci d'avance !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Bonjour,

    Mauvaise position de la parenthèse "fermante" de la fonction Trim :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not D Is Nothing And Trim(D.Offset(0, 4)).Value = "x" Then
    Bonne journée

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut
    Je te remercie, mais malheureusement, ca n'a rien change.

  4. #4
    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,

    quel est le message d'erreur?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    re-,

    Effectivement, mauvaise analyse de ma part....

    Si tu cherches à définir D, et que celui est "Nothing", tu ne peux donc vérifier la cellule située 4 colonnes plus à droite....

    Donc met tes conditions sur 2 lignes....

    Par contre, comprends pas bien pourquoi tu mets la colonne 1 en recherche de dernière ligne, dans STD.Cells(Rows.Count, 1)......sachant que tu scannes sur la colonne G....

    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
    Sub ee()
    Dim STD As Worksheet, Datenbasis As Worksheet
    Set STD = Sheets("Feuil1")
    Set Datenbasis = Sheets("Feuil2")
    For Each E In STD.Range("G2:G" & STD.Cells(Rows.Count, 1).End(xlUp).Row)
        With Datenbasis.Range(Datenbasis.Cells(2, 1), Datenbasis.Cells(Datenbasis.Cells(Rows.Count, 1).End(xlUp).Row, 1))
            Set D = .Find(E.Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not D Is Nothing Then
                If Trim(D.Offset(0, 4).Value) = "x" Then
                    E.EntireRow.Interior.Color = 10092543
                End If
            End If
        End With
    Next
    End Sub
    Peut-être....

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut
    Mon message d'erreur c'est "objekt erforderlich" (je suis en Allemagne) ce qu'on peut trqduire pqr : Objet requis.

    J'ai tente de mettre 2 If comme tu l'as fait mais ca n' a rien change.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Repérer une erreur dans une MACRO à l'aide de sa position
    Par JeromeMATHIAS dans le forum Macro
    Réponses: 1
    Dernier message: 15/05/2014, 10h15
  2. [Camel] Traitement des erreurs dans une route
    Par Dr_GreenThumb dans le forum Java EE
    Réponses: 3
    Dernier message: 18/03/2014, 12h09
  3. Réponses: 3
    Dernier message: 30/06/2010, 19h57
  4. erreur dans une macro
    Par chrisbdx dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/02/2010, 16h43
  5. Traitement d'erreur dans une Action
    Par Snyper dans le forum Struts 1
    Réponses: 5
    Dernier message: 03/05/2009, 22h51

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