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 :

exécution d'une commande VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Par défaut exécution d'une commande VBA
    Bonjour, je suis débutante en VBA sur Excel, j'ai un problème avec une petite procédure: je n'ai pas de message d'erreur, mais en même temps la procédure ne s'exécute pas concrètement sur mon fichier.
    Quelqu'un pourrait m'expliquer pourquoi? Merci,

    Voici la procédure en question:

    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
    Sub indicateur()
     
    Dim DerniereLigne As Long
    Dim C As Object
    Dim Instance As Long
     
    If Range("C3") <> "" Then
     
        If Sheets("tableau corrigé").Cells(2, 1) = "" Then
            DerniereLigne = 1
        Else
            DerniereLigne = Sheets("tableau corrigé").Cells(1, 1).End(xlDown).Row
            Set C = Sheets("tableau corrigé").Range("L2:L" & DerniereLigne).Find(Range("C3").Value, _
                      LookIn:=xlValues, LookAt:=xlWhole)
     
             If Not C Is Nothing Then
     
                    If Cells(C.Row, 12).Value <= "0" Then
                        Cells(C.Row, 13).Value = Range("A6")
     
     
                    ElseIf Cells(C.Row, 12) = "" Then
                        Cells(C.Row, 13) = Range("A8")
                    Else
                        Cells(C.Row, 13).Value = Range("A7")
                    End If
     
            End If
    MsgBox "Mise a jour effectuée", vbInformation + vbOKOnly, "Application Test"
        End If
     
    End If
     
     
    End Sub

  2. #2
    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 : 71
    Localisation : France

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

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

    Exécute la procédure en pas à pas (F8) pour voir où tu passes. Suivant ton code, il y a pas mal de cas où on ne change rien...

    Attention, quand tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("C3") <> "" Then
    tu oublies de préciser le classeur et la feuille.

    Il vaudrait mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ThisWorkbook.Worksheets("NomFeuille").Range("C3") <> "" Then
    Même chose pour la collection Sheets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Sheets("tableau corrigé").Cells(2, 1) = "" Then
    pourrait être écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ThisWorkbook.WorkSheets("tableau corrigé").Cells(2, 1) = "" Then
    Cordialement,

    PGZ

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Par défaut exécution d'une procédure VBA
    Bonjour
    merci pour votre réponse, en effet quand j'exécute en pas à pas, j'ai des lignes marquées en jaunes,mais sans aucun message d'erreur qui puisse m'indiquer où est le problème, par exemple me signaler que la toute première ligne "Sub indicateur ()" ou la première ligne de "If" avec la mention dans l'espion
    Watch : : a : <Expression non définie dans le contexte> : Empty : TabMaint.indicateur1

    Auriez vous des recommandations pour apprendre rapidement VBA? La formation que j'ai reçue me semble être très sommaire.

    Merci,
    Nidhal

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut nidhalkefi et le forum
    Pour dépanner un fonctionnement imparfait, il faut au minimum savoir ce qu'on attend comme résultat. Ce n'est pas le fonctionnement du code qui est en cause, mais le résultat du fonctionnement...

    Juste une remarque en passant : le seul endroit où est mentionné le nom d'une feuille, c'est là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DerniereLigne = Sheets("tableau corrigé").Cells(1, 1).End(xlDown).Row
    Set C = Sheets("tableau corrigé").Range("L2:L" & DerniereLigne).Find(Range("C3"), LookIn:=xlValues, LookAt:=xlWhole))
    Donc partout ailleurs, on traite sur la feuille active : par exemple, le paramètre de recherche peut se lire ActiveSheet.Range("C3").
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If ActiveSheet.Cells(C.Row, 12).Value <= "0" Then
        ActiveSheet.Cells(C.Row, 13).Value = ActiveSheet.Range("A6")
    Ton problème ne viendrait pas de ça ?
    A+

Discussions similaires

  1. Réponses: 9
    Dernier message: 30/05/2006, 19h38
  2. Exécution d'une commande dans un Trigger
    Par Perr1 dans le forum Oracle
    Réponses: 6
    Dernier message: 08/04/2006, 00h14
  3. [VB]Problème d'exécution d'une commande dos...
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 17/02/2006, 12h28
  4. Réponses: 6
    Dernier message: 09/11/2005, 17h29
  5. [Système] Pb exécution d'une commande externe
    Par licorne dans le forum Langage
    Réponses: 9
    Dernier message: 19/10/2005, 16h34

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