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'


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut erreur d'exécution '13'
    Bonjour,

    je veux trier un tableau sur 3 colonnes, mais ma macro m'affiche l'erreur d'exécution '13' incompatibilité de type???

    ça correspond à quoi cette erreur?

    et merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour argaz01

    tu fais comment comment pour effectuer ton tri, as tu au moin quelque chose à présenter.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Sans le code ce sera dur, en général c'est une mauvaise déclaration des variables (tableau dans ton cas), donc typage, et tu veux lui affecter une donnée d'un autre type.

    Mais sans code.

    Philippe

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    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
    Sub MacroTri()
    'Dim ws1 As Worksheet, ws2 As Worksheet
      Dim Lws1 As Long, Lws2 As Long, LmemNb As Long
      Dim memNb As Integer
      Dim TypeP As String
     
      'Le nom des feuilles est à modifier ici
      Set ws1 = Worksheets("Feuil1") 'Feuille lecture
      Set ws2 = Worksheets("Feuil2") 'Feuile ecriture
      'selection de la feuille en lecture
      ws1.Select
      'on commence par effectuer un tri sur 3 colonne
      ws1.Columns("A:C").Sort Key1:=Range("B2"), Order1:=xlAscending, Key2:=Range("A2") _
            , Order2:=xlAscending, Header:=xlYes
      Lws1 = 2: Lws2 = 2: TypeP = "": memNb = 0 'init des variables utilisées
     
      'boucle dans la feuille en lecture attention il ne faut pas de trou
      Do While ws1.Cells(Lws1, 1) <> ""
        'si le type est <>
        If TypeP <> ws1.Cells(Lws1, 2) Then
          TypeP = ws1.Cells(Lws1, 2) 'memorisation du type
          ws2.Cells(Lws2, 1) = ws1.Cells(Lws1, 2) 'ecriture du type
          'gestion du total
          If memNb <> 0 Then ws2.Cells(LmemNb, 2) = memNb 'ecriture du total au numero de ligne mémorisé
          LmemNb = Lws2: memNb = 0
          Lws2 = Lws2 + 1
        End If
     
        memNb = memNb + ws1.Cells(Lws1, 3) 'mémorisation du total
        ws2.Cells(Lws2, 1) = ws1.Cells(Lws1, 1) 'écriture du produit
        ws2.Cells(Lws2, 2) = ws1.Cells(Lws1, 3) 'écriture du nombre
        Lws1 = Lws1 + 1: Lws2 = Lws2 + 1 'incrémentation des lignes
      Loop
     
      Set ws1 = Nothing
      Set ws2 = Nothing
     
    End Sub
    Quand ça marche, ça me chomboule complétement mon tableau, alors que ce que je cherche c'est de trier mes lignes en fonction de leur contenue correspondant dals une colonne.

    Merci

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    RE

    je me disais aussi que je reconnaissais ce code, la prochaine fois essaye de préciser l'historique du problème, ça aide

    post précédent macros pour trier un tableau vers une nouvelle feuille excel


    pourrais-tu préciser sur quel ligne tu as le problème, ce ne serais pas celle-la par hasard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memNb = memNb + ws1.Cells(Lws1, 3) 'mémorisation du total
    si oui il faut tester la présence d'une valeur numerique avant de faire l'addition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsNumber(ws1.Cells(Lws1, 3)) Then memNb = memNb + ws1.Cells(Lws1, 3)  'mémorisation du total

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memNb = memNb + ws1.Cells(Lws1, 3) 'mémorisation du total
    regarde la colonne C si par hasard tu n'as pas une valeur non integer.
    Ci-joint, amélioration de lisibilité du code (mais bon, chacun a ses habitudes d'écriture)
    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
    Sub MacroTri()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim LastLig As Long, Lws1 As Long, Lws2 As Long, LmemNb As Long
    Dim memNb As Integer
    Dim TypeP As String
     
    'Le nom des feuilles est à modifier ici
    Set ws1 = Worksheets("Feuil1") 'Feuille lecture
    Set ws2 = Worksheets("Feuil2") 'Feuile ecriture
    'on commence par effectuer un tri sur 3 colonne
    With ws1
        LastLig = .Cells(Rows.Count, 1).End(xlUp).Row
        .Range("A1:C" & LastLig).Sort Key1:=.Range("B2"), Order1:=xlAscending, Key2:=.Range("A2"), Order2:=xlAscending, Header:=xlYes
        Lws2 = 2            'init des variables utilisées
     
        'boucle dans la feuille en lecture attention il ne faut pas de trou
        For Lws1 = 2 To LastLig
            'si le type est <>
            If TypeP <> .Range("B" & Lws1).Value Then
                TypeP = .Range("B" & Lws1).Value 'memorisation du type
                ws2.Cells(Lws2, 1) = TypeP 'ecriture du type
                'gestion du total
                If memNb <> 0 Then ws2.Range("B" & LmemNb).Value = memNb 'ecriture du total au numero de ligne mémorisé
                LmemNb = Lws2
                memNb = 0
                Lws2 = Lws2 + 1
            End If
     
            memNb = memNb + .Range("C" & Lws1).Value 'mémorisation du total
            ws2.Range("A" & Lws2).Value = .Range("A" & Lws1).Value 'écriture du produit
            ws2.Range("B" & Lws2).Value = .Range("C" & Lws1).Value 'écriture du nombre
            Lws2 = Lws2 + 1 'incrémentation des lignes
        Next Lws1
    End With
    Set ws1 = Nothing
    Set ws2 = Nothing
     
    End Sub

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

Discussions similaires

  1. [JVM][8.1.7] Erreur d'exécution de initjvm.sql
    Par Escuzze dans le forum Oracle
    Réponses: 4
    Dernier message: 01/07/2005, 15h39
  2. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20
  3. [CR8][VB6] Erreur d'exécution 20533
    Par pvava dans le forum SDK
    Réponses: 1
    Dernier message: 01/02/2005, 10h27
  4. Erreurs d'exécution sous delphi 5
    Par nkd dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2004, 17h25
  5. [Apache Perl] Erreur à l'exécution de mes cgi
    Par GLDavid dans le forum Apache
    Réponses: 4
    Dernier message: 28/08/2004, 20h23

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