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 avec un code en Vba Excel [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut Problème avec un code en Vba Excel
    Bonjour à tous,

    Grâce à krovax, j'ai pu disposer de ce code qui permet de faire un calcul à partir d'un chiffre saisi dans une TextBox (T5).
    Cependant, je rencontre un problème inattendu. Supposons que je saisisse un chiffre en T5 et que je me sois trompé, j'efface donc le chiffre et là, un message d'erreur
    "Type incompatible" sur la ligne en gras ci-dessous
    Je ne comprends pas ce qui se passe, pouvez-vous éclairer ma lanterne s'il vous plait ?
    Merci par avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Ch1_Click()
    Dim I As Long
    I = T5.Value
    If I Mod 55 <> 0 Then
    T19.Value=(I \ 55 + 1)
    Else
    T19.Value=I / 55
    End If
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  2. #2
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    rajoute

    juste avant d'executer ton code, pour vérifier que la cellule n'est pas vide (ton I mod 55 fait buger car il tente d'utiliser le modulo 55 sur une valeur null

  3. #3
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut
    A mon avis, c'est simplement que vba n'arrive pas à transformer rien en long.

    Pour que tout le reste fonctionne, il manque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if T5.value="" then 
        msgbox "T5 non rempli"
        Exit Sub
    EndIf
    au début de ta sub
    A lire :Les Règles

  4. #4
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Voilà, j'ai tapé ce code, mais toujours lê même messahe d'erreur lorsque j'efface le chiffre tapé
    La ligne en gras est surlignée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim I As Long
    I = T5.Value
    If I Mod 55 <> 0 Then
    T19.Value = (I \ 55 + 1)
    Else
    T19.Value = I / 55
    End If
    If T5.Value = "" Then
        MsgBox "T5 non rempli"
        Exit Sub
    End If
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Désolé, j'ai trouvé la réponse
    J'avais mal positionnée une partie du code, voici comment il doit être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim I As Long
    If T5.Value = "" Then
        MsgBox "T5 non rempli"
        Exit Sub
    End If
    I = T5.Value
    If I Mod 55 <> 0 Then
    T19.Value = (I \ 55 + 1)
    Else
    T19.Value = I / 55
    End If
    Encore merci pour votre aide
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

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

Discussions similaires

  1. [XL-2010] Problème avec le code VBA
    Par mimiaqu dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/04/2013, 20h52
  2. [XL-2000] Problème avec l'aide de vba Excel
    Par ben_ghost dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/05/2009, 17h39
  3. Problème avec un code VBA
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/08/2008, 13h57
  4. Problème avec un code Vba Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/10/2007, 16h43
  5. Problème avec l'export en VBA
    Par ludvax dans le forum Access
    Réponses: 4
    Dernier message: 24/02/2006, 14h38

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