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 :

Incompatibilité de type


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2018
    Messages : 2
    Par défaut Incompatibilité de type
    Bonjour,

    N'ayant pas trop de connaissance sur les macros excel, je viens ici car j'ai un problème de macro.
    Quand je clique sur modifier une cellule cela me dit que j'ai une incompatibilité de type mais cela me renvois sur aucun problème de macro donc je ne comprend pas d'où provient le problème.
    Merci d'avance !

    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
     
    Sub Afficher_Form_Modif_Pièces()
    Dim Réponse As Integer
     
    MaLigne = ActiveCell.Row
     
    'Vérifier qu'on est dans la plage des Pièces
    If MaLigne < Range("Pièces").Row + 1 Or MaLigne > Range("Pièces").End(xlDown).Row Then
        Réponse = MsgBox("Sélection incorrecte", vbOKOnly, "Modification de ligne")
        If Réponse Then Exit Sub
    End If
     
    With UF_Pièces
        .Titre.Caption = "Modifier une Pièce"
     
        .Bouton_Dernier.Enabled = True
        .Bouton_Précédent.Enabled = True
        .Bouton_Premier.Enabled = True
        .Bouton_Suivant.Enabled = True
    End With
     
    Call Initialiser_UF_Pièces
    Call Lire_Pièces
     UF_Pièces.Show
    End Sub

  2. #2
    Expert confirmé
    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 : 68
    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
    Billets dans le blog
    7
    Par défaut
    Bonjour et bienvenu sur le Forum,

    Le débogage a dû surligner un mot clé.

    Ici, Msgbox est déclarée comme variable Integer.
    N'y aurait-il pas confusion avec la méthode Inputbox?

    Voir l'aide sur cette méthode

    La déclaration s'effectuera selon le Type de l'Inputbox.
    Pour ma part, j'essaie le plus souvent possible de déclarer les arguments de la méthode que j'utilise. Le plus souvent..
    (Prompt:=, Type:=)

  3. #3
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjor,

    Tente de changer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Réponse as integer
    Par :

    Bonne journée à toi,

  4. #4
    Expert confirmé
    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 : 68
    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
    Billets dans le blog
    7
    Par défaut
    Bonjour Trystan,

    Tout dépend de la valeur attendue
    Voir mon post précédent.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Effectivement, et la réponse attendue m'a l'air d'être une valeur numérique,

    Cependant, tu peux déja enlever un IF qui e semble en trop :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'Vérifier qu'on est dans la plage des Pièces
    If MaLigne < Range("Pièces").Row + 1 Or MaLigne > Range("Pièces").End(xlDown).Row Then
     
        Réponse = MsgBox("Sélection incorrecte", vbOKOnly, "Modification de ligne")
        Exit Sub
     
    End If
    Trystan

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par lucasbecgerion Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If Réponse Then Exit Sub
    Réponse est un Integer et cette structure correspond à un Boolean.
    D'autant plus inutile que le paramètre OkOnly de MsgBox ne permet pas de choisir une réponse.
    Donc, cette variable est aussi inutile que la structure If qui la teste.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    je rejoins menhir sur ce coup la ton msgbox interactif est absolument inutile
    tester la reponse ok d'un message avec pour seul bouton le bouton ok heu...
    j'ajouterais que pour tester ou délimiter une selection tu a la fonction intersect

    conclusion je remplacerais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Vérifier qu'on est dans la plage des Pièces
    If MaLigne < Range("Pièces").Row + 1 Or MaLigne > Range("Pièces").End(xlDown).Row Then
         Réponse = MsgBox("Sélection incorrecte", vbOKOnly, "Modification de ligne")
        If Réponse Then Exit Sub
    End If
    par cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'Vérifier qu'on est dans la plage des Pièces
            With ActiveSheet
                If Application.Intersect(.Range(.Range("Pièces"), .Range("Pièces").End(xldoxn)), ActiveCell) Is Nothing Then
                    MsgBox "Sélection incorrecte": Exit Sub' le msgbox n'a pas besoins dans ces circonstences de parametres bouton puisque c'est juste un avertissement 
                     'et que le exit n'est le resultat que de la condition intersect de l'activecell dans une plage et non et celle du msgbox  
               End If 
            End With
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Incompatibilité de type ListBox
    Par priest69 dans le forum Access
    Réponses: 1
    Dernier message: 16/11/2005, 11h19
  2. Message incompatibilité de type
    Par Daniel MOREAU dans le forum Access
    Réponses: 5
    Dernier message: 10/10/2005, 20h57
  3. incompatibilité de type
    Par zooffy dans le forum Access
    Réponses: 2
    Dernier message: 13/06/2005, 15h12
  4. Incompatibilité de types dans un formulaire
    Par ahage4x4 dans le forum ASP
    Réponses: 3
    Dernier message: 03/05/2005, 15h39
  5. [XSD] Incompatibilité des types xs:ID et xs:IDREF ?
    Par Cpt.FLAM dans le forum Valider
    Réponses: 6
    Dernier message: 08/04/2005, 14h54

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