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 :

Erreur incompatibilité de types


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Analyste Statistique
    Inscrit en
    Janvier 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Analyste Statistique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 14
    Par défaut Erreur incompatibilité de types
    Bonjour j'ai un problème avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub branche()
    Dim k, i As Long
    For k = 4 To 33
    For i = 2 To 30
    Worksheets("BRAN").Cells(k, i + 2) = Worksheets(i).Cells(k + 2, 4) + Worksheets(i).Cells(k + 2, 8)
    Next i
    Next k
    End Sub
    J'ai un classeur contenant une feuille "BRAN" et d'autres dont les noms sont 1,2,....,29 et je veux sommer les valeurs de certaines cellules des feuilles 1,2,....,29 et les déverser dans des cellules de la feuille "BRAN" mais VBA m'affiche ERREUR INCOMPATIBILITE DE TYPE.
    Merci de m'aider.

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    J'ai crée un fichier avec les éléments fournis, je n'ai pas d'erreur

    au moment ou ça plante vérifie les valeurs des variables, il y a peut étre

    des données non numériques dans une de tes feuilles.


    J'aurais eu tendance à utilise le nom des feuilles pour les feuilles 1 à 29

    si des feuilles on été supprimées à un moment il es possible que l'une des feuilles recherchée n'existe pas.

    des données non numériques dans une de tes feuilles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub branche2()
    Dim k, i As Long
    For k = 4 To 33
    For i = 1 To 29
    Worksheets("BRAN").Cells(k, i + 2) = Worksheets(Format(i)).Cells(k + 2, 4) + Worksheets(Format(i)).Cells(k + 2, 8)
    Next i
    Next k
    End Sub
    Comme ceci je suis certain d'utiliser la bonne feuille.


    Bonne soirée.

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Avec Worksheets(i) tu récupères la feuille n° i et non pas la feuille dont le nom est i. Comme te le propose a_diard, il faudrait utiliser Worksheets(Format(i)) ou Worksheets("" & i & "")

  4. #4
    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
    Petit détail, quand tu écris :
    Seul i est déclaré de type Long.
    k est déclaré de type Variant (tu peux le vérifier dans la fenêtre des variables locales).

    La bonne syntaxe est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim k As Long, i As Long
    Pour ton problème, je pense comme les autres que tu ne pointes pas sur la bonne Worksheet en raison de l'ambiguïté numéro/nom.
    Pour le vérifier, je te conseille de mettre juste après ton second For, la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print i;" > ";Worksheets(i).Name
    De faire tourner ton programme en pas-à-pas et de regarder ce qui s'affiche dans la fenêtre d'exécution.

  5. #5
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Petit test à réaliser, en compléments des excellentes réponses proposées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
    Dim i As Long
        For i = 2 To 30
            If Not IsNumeric(Worksheets(i).Name) Then MsgBox Worksheets(i).Name
        Next i
    End Sub

Discussions similaires

  1. [AC-2010] Erreur "incompatibilité de type"
    Par oreoolep dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/12/2011, 21h29
  2. Erreur incompatibilité de type au lancement formulaire
    Par koluche dans le forum VBA Access
    Réponses: 0
    Dernier message: 05/05/2011, 14h59
  3. Erreur "incompatibilité de type" lors import dans table Access
    Par spud96 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2011, 21h40
  4. erreur incompatibilité de type
    Par prince19 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/06/2007, 11h43
  5. [VBA E]erreur incompatibilité de type que je ne comprend pas
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2006, 14h14

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