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 [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur de production
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur de production
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Erreur d’exécution '13': Incompatibilité de type
    Bonjour,

    Après la résolution de la précédente erreur sur mon projet, j'ai maintenant une "Erreur d'execution '13': Incompatibilité de type".
    Après avoir lu les des infos sur internet chercher dans mon code la cause, sans succès, je me tourne de nouveau vers vous!

    Pour vous expliquer rapidement le but de ce code:
    J'ai un classeur excel A dans lequel je dépose un tableau.
    La macro, une fois lancée, me créé une nouvelle feuille dans le classeur B et y met en forme un nouveau tableau à partir du premier tout en y ajoutant (sur la feuille) une macro précédemment contenue dans un module du chasseur A.

    Ci-dessous mon 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
    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    Option Explicit
    Sub Création_feuille()
     
        Dim A As String
        Dim B As String
        Dim DernLig As Long
        Dim S As String
        Dim N As String
        Dim Wbk As Workbook
     
    'Copie les données
        Windows("fichier_entree.xlsm").Activate
        Columns("A:C").Copy
     
    'Copie du code du module 2
        With ActiveWorkbook.VBProject.VBComponents("Module2").CodeModule
        S = .Lines(1, .CountOfLines)
        End With
     
    'Création du nom de la feuille
        A = Left(Cells(2, 4).Value, 6)
        B = Right(A, 2)
        N = Left(Cells(2, 1).Value, 4) & " SS " & B
     
    'Détermine le nombre de ligne non vide
        DernLig = Cells(Cells.Rows.Count, "A").End(xlUp).Row
     
    'Création de la nouvelle feuille
        Workbooks.Open ("C:\Users\Vivien\Desktop\VBA\SuiviDeProduction\Suivi_de_Production.xlsm")
        Sheets.Add After:=Sheets(Sheets.Count)
     
    'Coller les données
        Range("A1").Select
        ActiveSheet.Paste
     
    'Création de la colonne Ligne
        Range("A:A").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        Range("A1").Value = "LIGNE"
        With Range("A1")
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlBottom
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
        Range("B1").Copy
        Range("A1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
        End With
     
    'Création colonne poste 1
        Range("E1").Select
        ActiveCell.FormulaR1C1 = "Obj."
        Range("F1").Select
        ActiveCell.FormulaR1C1 = "Poste 1"
        With Range("E1:F1")
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlBottom
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
        Range("B1").Copy
        Range("E1:F1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
        End With
     
    'Renomme la nouvelle feuille
        ActiveSheet.Name = (N)
     
    'Copie du code du module 2 dans la feuil1 (Liste)
        Set Wbk = ActiveWorkbook
        With Wbk.VBProject.VBComponents(ActiveSheet).CodeModule
        .AddFromString S
        End With
     
    'Ferme le fichier de suivi de prod
        Windows("Suivi_de_Production.xlsm").Activate
        ActiveWorkbook.Save
        ActiveWindow.Close
     
    End Sub
    L'erreur intervient sur la ligne 81.
    Cette ligne fonctionnait lorsque je nommais la feuille directement.
    Or le nom de la feuille est maintenant variable.
    A savoir le nom de la feuille est contenu dans la variable "N" mais je n'ai pas encore réussi à m'en servir pour sélectionner là feuille.

    Merci pour votre temps.

    Vivien

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Bonjour,

    Tu dois préciser le codename de la feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Wbk.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur de production
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur de production
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    C'était tout à fait ça!
    Un grand merci!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Dans ton code, tu fais des select , des open et à un moment du code tu as appris un nouveau mot!
    Set Wbk = ActiveWorkbook dommage que tu ne l'ais pas connus en début de code!

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

Discussions similaires

  1. [XL-2010] Problème d'incompatibilité de type (erreur d’exécution 13)
    Par Dubbleu dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/07/2013, 16h54
  2. Réponses: 4
    Dernier message: 18/03/2007, 17h09
  3. Erreur 13 : incompatibilité de type
    Par Donatelli dans le forum Access
    Réponses: 1
    Dernier message: 03/01/2007, 12h19
  4. [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
  5. [VBA-A] ADO - Erreur 13 Incompatibilité de Type
    Par db30 dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/04/2006, 14h30

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