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 :

changement de sub auto [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Points : 168
    Points
    168
    Par défaut changement de sub auto
    Bonjour,

    Je me trouve de nouveau confronter à un problème :s

    J'ai une macro qui se termine comme ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub detail_revenu ()
     
    .... 'traitement
     
    Call detail_market_share
     
    End Sub
    Ainsi j'apelle une autra macro:

    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
    Sub detail_market_share()
    Dim i As Integer
    Dim j As Integer
    Dim valeur_tot As Double
    Dim valeur_cel As Double
    
    
    Application.ScreenUpdating = False
    
    With Sheets("Area and Country")
    
    For j = variable + 3 To (2 * variable) + 3 'variable est public et défini préalablement
    i = 11
    
    valeur_tot = .Cells(der_ligne, j - (variable + 1))   'après cette ligne le programme repasse a la macro précédente ... :'(
                         
         If valeur_tot = 0 Then   ' si le total du pays = 0 alors NEW ..
                For i = 11 To der_entreprise
                .Cells(i, j) = "NEW"
                Next i
                
        End If
             
        For i = 11 To der_entreprise
                       
           ........
    Mon problème se trouve à l'exécution de la ligne en rouge,
    je m'explique

    Une fois cette ligne traitée, valeur_tot comporte une valeur du genre 15663
    mais au lieu de continuer dans la sub detail_market_share() elle repasse dans l'autre sub : "detail_revenu "

    Quelqu'un pourrait m'expliquer pourquoi ?

    Merci d'avance

    Cdlt
    DoDO

  2. #2
    Membre habitué Avatar de Orhleil
    Homme Profil pro
    Intégrateur fonctionnel
    Inscrit en
    Mai 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 81
    Points : 152
    Points
    152
    Par défaut
    En explication à "Pourquoi le programme retourne à detail_revenu ?", je répondrais que tu as sûrement dans detail_revenu un "On Error..." et du coup à ta ligne en rouge, detail_market_share renvoie une erreur, que detail_revenu traite comme n'importe quelle autre erreur.
    Par contre j'ai du mal à voir ce qui envoie une erreur dans cette ligne rouge...

    EDIT : essaie avec ça pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valeur_tot = CDbl(.Cells(der_ligne, j - (variable + 1)).Value)
    On convertit le contenu en Double, pour être sûr qu'il cherche pas à affecter un String à un Double...

  3. #3
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut arrêt macro
    Salut,

    Peux-tu insérer dans ton 2ème code,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print der_entreprise
    Et faire part du retour affiché dans ta fenêtre Exécution (CTRL + G)

    Il se peut que l'arrêt soit dû à cette variable non prise en compte car npn déclarée.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  4. #4
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Points : 168
    Points
    168
    Par défaut
    Bon si j'ai suivi pour les erreurs que l'on cherche durant plus d'une heure...
    et qu'une réponse comme celle de MarcelG:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print der_entreprise
    nous fait remarquer que l'on sait tromper dans les variables, écrit "der_ligne" au lieu de "der_entreprise" dans les lignes de code.

    On peut alors vous remercier pour le temps que vous avez consacré à chercher une erreur introuvable :s et s'excuser puis cliquer sur le bouton delestage.

    Encore merci

    Bien sincérement
    DoDo

  5. #5
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut Résolu
    Dodo69,

    Tu n'as pas à t'excuser.

    Pour ma part, je n'ai pas mis bien longtemps à détecter ce problème de variable.

    Ce genre de situation arrive souvent. Le principal étant que cette anomalie te serve lors d'un prochain développement (contrôle des variables).

    Positionne plutôt ton post en "Résolu".

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  6. #6
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Points : 168
    Points
    168
    Par défaut
    ^^ Ba merci bien MarcelG en tout cas,

    J'y ferai plus attention à l'avenir

    Merci
    cdlt
    DoDo

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

Discussions similaires

  1. [XL-2003] VB changement de ligne auto
    Par redstoff dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 16/11/2010, 12h03
  2. Changement de focus auto JTextField
    Par riderfun dans le forum Composants
    Réponses: 2
    Dernier message: 11/03/2009, 14h22
  3. changement de champ auto
    Par erox44 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/03/2008, 12h10
  4. Changement background auto sur IE
    Par ThomasR dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/12/2007, 10h18
  5. Evènement sur changement numéro auto
    Par willytito dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/09/2007, 15h40

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