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'éxécution 13 - Incompatibilité de Type [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Par défaut Erreur d'éxécution 13 - Incompatibilité de Type
    Bonjour,

    J'expérimente un problème, lorsque le tableau excel dont j'exécute le code dépasse les 260,000 lignes environ. Autrement le code fonctionne très bien

    Le code roule et s'arrête à: «range("A1:W" & F) = Application.WorksheetFunction.Transpose(Tblo)» . Je ne comprends pas. Avez-vous des suggestion?

    Voici 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
    Sub SuppLign()
    Dim Tblo() As Variant
    Dim orders As ListObject
    Dim cel As range
    Dim F As Long
     
    '***********************  ENLEVER LES LIGNES DONT LA CELLULE DE LA COLONNE f EST À 0 *****************************
    Workbooks("01 GENERAL.xlsx").Activate  '>>>>>>>>>>>>NOM DU CLASSEUR
     
    Application.ScreenUpdating = False
    'Sheets("Feuil1").Activate
     
    Set orders = Sheets("Sheet1").ListObjects("Tableau1")  '>>>>>>>>>>>> NOM DE LA FEUILLE
    For Each cel In orders.DataBodyRange.Columns(7).Cells '»»»»»»»»»»»»»»»»»»» sélectionne les lignes à conserver
        If cel = "1" Then
        F = F + 1
        ReDim Preserve Tblo(1 To 23, 1 To F)
        Tblo(1, F) = cel.Offset(0, -6).Value
        Tblo(2, F) = cel.Offset(0, -5).Value
        Tblo(3, F) = cel.Offset(0, -4).Value
        Tblo(4, F) = cel.Offset(0, -3).Value
        Tblo(5, F) = cel.Offset(0, -2).Value
        Tblo(6, F) = cel.Offset(0, -1).Value
        Tblo(7, F) = cel.Value
        Tblo(8, F) = cel.Offset(0, 1).Value
        Tblo(9, F) = cel.Offset(0, 2).Value
        Tblo(10, F) = cel.Offset(0, 3).Value
        Tblo(11, F) = cel.Offset(0, 4).Value
        Tblo(12, F) = cel.Offset(0, 5).Value
        Tblo(13, F) = cel.Offset(0, 6).Value
        Tblo(14, F) = cel.Offset(0, 7).Value
        Tblo(15, F) = cel.Offset(0, 8).Value
        Tblo(16, F) = cel.Offset(0, 9).Value
        Tblo(17, F) = cel.Offset(0, 10).Value
        Tblo(18, F) = cel.Offset(0, 11).Value
        Tblo(19, F) = cel.Offset(0, 12).Value
        Tblo(20, F) = cel.Offset(0, 13).Value
        Tblo(21, F) = cel.Offset(0, 14).Value
        Tblo(22, F) = cel.Offset(0, 15).Value
        Tblo(23, F) = cel.Offset(0, 16).Value
        End If
    Next cel
     
    Cells.EntireRow.Delete
    ' s'arrête ici
    range("A1:W" & F) = Application.WorksheetFunction.Transpose(Tblo) 'pour les feuilles de plus de 250k lignes
    ' il apparaît un message d'erreur 13   Incompatibilité de type ???
     
    ActiveWorkbook.Save
    Application.ScreenUpdating = True
     
    End Sub

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    tester Application.Transpose

    Sinon le buffer de cette fonction n'est pas extensible à l'infini, dans une ancienne version il était limité à moins de 5 500 éléments !

    En dehors de gérer une autre variable tableau extrêmement gourmande en mémoire (pas la peine si moins de 16 Go de RAM),
    il faudrait mieux effectuer le transfert par bloc ou encore revoir le code sans utiliser de variable tableau
    comme par exemple une plage égale à une autre, un copier / coller après un filtre …

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Par défaut Merci
    Ça répond à ma question je vais voir à trouver autre choses

    Merci

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

Discussions similaires

  1. Erreur d'éxcution "13" incompatibilité de type
    Par sossso112333 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/08/2014, 21h16
  2. Erreur d'exécution 13 : incompatibilité de type
    Par Ptikir dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/04/2009, 15h59
  3. erreur d'exécution 13 incompatibilité de type
    Par glamgeek dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/03/2009, 12h03
  4. "erreur d'exécution 13 : incompatibilité de type"
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 19/07/2007, 15h47
  5. erreur d'exécution 13, incompatibilité de type
    Par PHPdudimanche dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/06/2007, 15h20

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