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 averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut erreur d'exécution 13, incompatibilité de type
    Bonjour, j'ai l'erreur suivante, comment y remédier ?
    "erreur d'exécution 13"
    "incompatibilité de type"
    Je souhaite enlever les espaces de toute cellule de mon tableau

    1/ Fonction pour enlever les espaces

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function EnleverEspaces()
    Dim Cell As range
    For Each Cell In Selection
    Cell.Value = Trim(Cell.Text)
    Next Cell
    End Function
    2/ Ma sélection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim DepartColonne
    Set DepartColonne = Worksheets("PRIX").range("A3:T200")
    3/ Mon appel de la fonction au sein d'une autre fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EnleverEspaces (DepartColonne)

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    1ere chose remplacer la fonction par une procédure, car aucun résultat n'est renvoyé.
    Ensuite rajouter un paramètre à cette procédure, sinon ça ne sert à rien de définir au préalable la plage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub EnleverEspaces(plage As Range)
        Dim Cell As range
        For Each Cell In plage.Cells
            Cell.Value = Trim(Cell.Text)
        Next Cell
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut erreur d'exécution 424 - objet requis
    Merci

    Je comprends la fonction ou plutôt SUB

    J'ai mis la SUB en dehors de ma fonction, en haut dans le module.
    Pour l'appeler, je fais :
    EnleverEspacesAvantApres (DepartColonne)

    Ce qui donne l'erreur suivante :
    erreur d'exécution 424 - objet requis

    Je passe donc mal le paramètre de ma plage à traiter ?
    Comment faire ?

    Merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Peux-tu nous montrer ton code? et nous dire à quelle ligne tu as l'erreur?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut code total
    Voici le 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
    Sub EnleverLesEspaces(plage As range)
        Dim Cell As range
        For Each Cell In plage.Cells
            Cell.Value = Trim(Cell.Text)
        Next Cell
    End Sub
     
    Function MiseAjour()
     
    'sélection multiple'
     
    Dim Depart As range
    Set Depart = Worksheets("PRIX").range("A3:C200")
    Dim Depart2 As range
    Set Depart2 = Worksheets("PRIX").range("G3:G200")
     
    Dim Destination As range
    Set Destination = Worksheets("PRODUIT").range("A3:C200")
    Dim Destination2 As range
    Set Destination2 = Worksheets("PRODUIT").range("F3:F200")
     
    'copie'
     
    Depart.Copy Destination
    Depart2.Copy Destination2
     
    'tri des deux tableaux en respectant les formules'
     
    Dim DepartColonne
    Set DepartColonne = Worksheets("PRIX").range("A3:T200")
     
    'fonction qui genere l'erreur erreur d'execution 424 objet requis '
    EnleverLesEspaces (DepartColonne)
     
     
    DepartColonne.Sort Key1:=Worksheets("PRIX").range("A2"), Order1:=xlAscending, Key2:=Worksheets("PRIX").range("B2"), Order2:=xlAscending, MatchCase:=False, Orientation:=xlTopToBottom
     
    'ajout de ligne à chaque fin de marque et coloriage premiere occurence'
    Dim x As Integer, i As Integer
     
    x = Worksheets("PRIX").range("A65536").End(xlUp).Row
     
    For i = x To 2 Step -1
        If Cells(i, 1) <> Cells(i - 1, 1) And Cells(i, 1) <> "" Then
            Cells(i, 1).Interior.ColorIndex = 4
            Cells(i, 1).EntireRow.Insert
        End If
    Next i
     
    Dim DestinationColonne
    Set DestinationColonne = Worksheets("PRODUIT").range("A3:T200")
    DestinationColonne.Sort Key1:=Worksheets("PRODUIT").range("A2"), Order1:=xlAscending, Key2:=Worksheets("PRODUIT").range("B2"), Order2:=xlAscending, MatchCase:=False, Orientation:=xlTopToBottom
     
    End Function

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonjour,

    Essaye d'appeler ta procedure comme ceci:

    EnleverLesEspaces DepartColonne


    Cordialement,

    Tirex28/

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

Discussions similaires

  1. [XL-2003] erreur d'exécution 13 incompatibilité de type
    Par joelweb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/07/2012, 17h07
  2. Erreur d'exécution "13" incompatibilité de type
    Par zenico64 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 14/12/2010, 10h45
  3. 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
  4. 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
  5. "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

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