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èmes de variables [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut Problèmes de variables
    Bonjour a vous tous
    dans ce code
    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
    Private Sub OptionButton4_Click()
        Set Sh = Sheets("prestation")
        Dim NoDescription As New Collection
    Dim A As Long
    Dim i As Integer
    On Error Resume Next
        Set rg = Sh.Range(Sh.[D2], Sh.[D65536].End(xlUp))
        A = rg.Value
        For i = 1 To UBound(A, 1)
            If A(i, 1) = "" Then
            Else
                NoDescription.Add A(i, 1), CStr(A(i, 1))
            End If
        Next i
        Me.lstDescription.Clear
        For J = 1 To NoDescription.Count
            Me.lstDescription.AddItem NoDescription(J)
        Next J
        Me.lstDescription.ListIndex = 0
       ' Me.lstArticle.Clear
    End Sub
    j'ai des problèmes de variable A,i, rg depuis que je suis sous windows8
    c'est un fichier qui n'a pas
    option explicit
    en tete (erreur je sais mais erreur de débutant
    quelle sont les bonnes variables a donner a ce code
    merci
    Pascal

  2. #2
    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
    Bonjour,

    "option explicit" il te suffit soit de le rajouter manuellement et pour que ce soit automatique dans le menu "Outils" > "Options..." > onglet "Editeur" > cocher la case "Déclaration des variables obligatoire".
    Quand tu veux affecter un Range sous forme de tableau à une variable (ici, A) cette dernière doit être déclarée de type "Variant" (type par défaut quand pas précisé).
    Tu devrais utiliser un dictionnaire au lieu d'une collection, plus rapide :
    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
    Private Sub OptionButton4_Click()
     
        Dim Sh As Worksheet
        Dim Rg As Range
        Dim NoDescription As New Collection
        Dim A '<-- doit être déclaré "Variant" pour pouvoir recevoir un Range
        Dim I As Integer
        Dim J As Integer
     
        Set Sh = Sheets("prestation")
     
        On Error Resume Next
     
        Set Rg = Sh.Range(Sh.[D2], Sh.[D65536].End(xlUp))
        A = Rg.Value
     
        For I = 1 To UBound(A, 1)
            If A(I, 1) <> "" Then
                NoDescription.Add A(I, 1), CStr(A(I, 1))
            End If
        Next I
     
        Me.lstDescription.Clear
     
        For J = 1 To NoDescription.Count
            Me.lstDescription.AddItem NoDescription(J)
        Next J
     
        Me.lstDescription.ListIndex = 0
        Me.lstArticle.Clear
     
    End Sub
    Hervé.

  3. #3
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonsoir hervé

    merci de tes explication,mais une fois cochez la déclaration de variable il y a un bug a l'activation de l'usf
    est ce que je peux mettre en tete de code une variable qui se répète comme et d'autres aussi
    un dictionnaire tu dit????????????????????
    je peux y joindre la liste des codes si tu le veux

    Pascal

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

    Poste un classeur exemple pour voir ce qui ne va pas.

    Hervé.

  5. #5
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour Hervé

    voici un fichier débridé pour voir le souci qui se créer a tous les niveaux de codes sauf aux boutons de remonter/suppression descende de lignes qui eux ont éte construit avec
    "option explicit
    "

    Pascal

  6. #6
    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
    Re,

    A priori, c'est un classeur que tu as récupéré quelque part et il manque pas mal de choses comme les références de certains Noms, des feuilles comme par exemple la feuille "commune" des objets TextBox (ou autre ?) comme l'objet "ACATTENT".
    Le code devrait être revu de fond en comble car il y à pas mal de "Activate" et "Select" qui font scintiller l'écran.
    Même si la propriété Text est celle par défaut, il est bon de la préciser quand on fait référence à un TextBox ou autres contrôles l'ayant comme propriété par défaut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Range("F" & i + 1).Value = ACATTENT.Text
    Il est plus compréhensible de préfixer le nom donné à un objet comme par exemple un TextBox peu être nommé "TxtAttent" de ce fait, dans le code, si la propriété Text n'est pas précisée on sait qu'on a à faire à un TextBox.
    Il est difficile de t'aider sans passer des heures sur ton classeur. Je pense que tu devrait récupérer le classeur opérationnel et si tu y fait des modifs, les faire avec précaution.

    Hervé.

  7. #7
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour hervé
    c'est un fichier créer de toute pièces par moi avec l'aide de différent forums et dont les résultat ont été mis bout a bout et donne a mon avis cet usine a gaz
    la feuille "commune" a été efface pour alléger le fichier
    pour ce qui est du fichier client il a été revu et corriger par Patricktoulon que je remercie et qui est dans les contributions

    c'est aussi pour cela que j'essai un autre fichier que je joint et qui a également des soucis de variables qui n'existait pas avec windows7

    Pascal

  8. #8
    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
    Effectivement, je n'arrive absolument pas à utiliser ton classeur ?

    Hervé.

  9. #9
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour hervé

    je te retourne le dernier fichier auquel j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ctrMt, ctrTVA7, ctrTVA19 As Variant
    pour qu'il veuille bien s'activer chez moi
    hormis le fichier client, et le code nouvelle feuille

    Pascal

  10. #10
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonsoir hervé où THEZE
    citations
    car il y à pas mal de "Activate" et "Select"
    peut etre quelque "activate" mais peu de sélect bref ce n'est surement pas cela qui cause les problèmes de varibles

    Pascal

    bonjour THEZE
    je viens de relire le post donc tu dit
    citation
    Je pense que tu devrait récupérer le classeur opérationnel et si tu y fait des modifs, les faire avec précaution.
    le classeur opérationnel n'existe pas celui que j'ai envoyer est une création avec l'aide de différent forum

    Pascal

  11. #11
    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
    Bonjour,

    Je n'arrive absolument pas à utiliser ton classeur. J'ai une erreur "Erreur automation Erreur non spécifiée" sitôt que je l'ouvre et je ne peux lancer aucun formulaire.
    J'ai essayé de voir s'il était possible de réparer mais voilà la réponse d'Excel :
    "Le fichier était trop endommagé pour pouvoir être réparé. Excel a essayé d'enregistrer vos formules et valeurs, mais certaines données ont peut-être été perdues ou endommagées."
    Désolé !

    Hervé.

  12. #12
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour theze
    chez moi aucun souci d'automation du fichier depuis etre passé a office 2010
    meme en réouvrant le fichier joint
    d'ailleurs avec mon ancienne machine j'ai également eu ce problème , avec Windows xp et office2007 c'était suite a une mise a jour de Microsoft en aout 2012
    Pascal

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

Discussions similaires

  1. [VB.NET] Probléme de variable
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/03/2005, 11h51
  2. [Debutant(e)]problème de variable d'environnement
    Par tolsam dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 19h08
  3. Problème de variable
    Par vp dans le forum Windows
    Réponses: 2
    Dernier message: 14/05/2004, 16h27
  4. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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