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 d'exécution "13": Incompatibilité de type


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Par défaut Erreur d'exécution "13": Incompatibilité de type
    Bonjour,

    Lorsque je lance mon code, j'ai cette erreur et je n'ai vraiment pas idée où est ce que j'ai commis une erreur :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Sub Test()
    Dim Report As String
    Dim tonnage As Double
    Dim charge As Double
    Dim ligne, dateg, ladatechiffre, finmois As Double
    Dim i, n As Integer
    Dim ladate, datereport As Date
    ladate = InputBox("Entrez le mois et année à reporter (sous format : MM/YYYY, 03/2017 par exemple")
    ladatechiffre = CDbl(ladate)
    finmois = Day(Application.WorksheetFunction.EoMonth(ladate, 0))
    ligne = ladatechiffre + finmois
    i = 2
    dateg = CDbl(Cells(2, 1))
    While ligne > dateg
        i = i + 1
        dateg = CDbl(Cells(i, 1))
        Wend
    Rows(i).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    election.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlMedium
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlMedium
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlMedium
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlMedium
        End With
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
     
    Do
    Cells(i, 1) = InputBox("Quel est la date a reporter? (JJ/MM/YYYY)")
    Cells(i, 2) = "Report"
    Cells(i, 4) = InputBox("Quel est le client?")
    Cells(i, 5) = InputBox("Quel est le pays?")
    tonnage = InputBox("Combien on a déjà reporter.")
    n = 0
    While datereport <> Cells(i, 1)
    n = n + 1
    datereport = Cells(n, 1)
    Wend
    charge = Cells(n, 16)
    Cells(i, 6) = charge - tonnage
    Cells(i, 8) = InputBox("Quel produit?")
    Cells(i, 10) = InputBox("Quel est son statut?")
    i = i + 1
    Loop While MsgBox("Voulez-vous répéter l'opération", vbYesNo) = yes
     
     
     
     
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Comme Halaster08 te disait dans ton précédent message, donne la ligne où survient l'erreur...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Par défaut
    Vu que je suis sur mac, il donne vraiment aucune information à propos de cela..

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Par défaut
    J'ai mit une grosse partie du code en mode commentaire pour teste je pense la partie la plus suspecte est celle là:

    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
     
    Do
        Cells(i, 1) = InputBox("Quel est la date a reporter? (JJ/MM/YYYY)")
        Cells(i, 2) = "Report"
        Cells(i, 4) = InputBox("Quel est le client?")
        Cells(i, 5) = InputBox("Quel est le pays?")
        tonnage = InputBox("Combien on a déjà reporter.")
            n = 0
            While datereport <> Cells(i, 1)
                n = n + 1
                datereport = Cells(n, 1)
                Wend
        charge = Cells(n, 16)
        Cells(i, 6) = charge - tonnage
        Cells(i, 8) = InputBox("Quel produit?")
        Cells(i, 10) = InputBox("Quel est son statut?")
        i = i + 1
    Loop While MsgBox("Voulez-vous refaire une autre opération", vbYesNo) = yes

    ou bien celle là:

    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
    Sub Test()
    Dim Report As String
    Dim tonnage As Double
    Dim charge As Double
    Dim ligne, dateg, ladatechiffre, finmois As Double
    Dim i, n As Integer
    Dim ladate, datereport As Date
    ladate = InputBox("Entrez le mois et année à reporter (sous format : MM/YYYY, 03/2017 par exemple")
    ladatechiffre = CDbl(ladate)
    finmois = Day(Application.WorksheetFunction.EoMonth(ladate, 0))
    ligne = ladatechiffre + finmois
    i = 2
    dateg = CDbl(Cells(2, 1))
    While ligne > dateg
        i = i + 1
        dateg = CDbl(Cells(i, 1))
        Wend
    Rows(i).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Vu que la grosse partie du centre c'est une macro enregistrer

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Citation Envoyé par oualidab Voir le message
    Vu que je suis sur mac, il donne vraiment aucune information à propos de cela..
    Essaie avec une gestion des erreurs

    En début de macro, écris
    Et avant le End Sub, tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Exit Sub
    Erreur:
    Msgbox err.number & vbcrlf & err.description
    Stop
    resume
    Quand il y a une erreur, ça va s'arrêter sur Stop et tu fais F8 deux fois pour remonter à la ligne en erreur...

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