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'execution '13'


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut Erreur d'execution '13'
    Bonjour a tous,

    alors voila je souhaite tester plusieur valeur sur une cellule, et si elle aparait pas, déplacer la ligne de la cellule dans une autre feuille.

    Juste le code du test sur lequel porte l'erreur 13.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Cel.Text = ("50") Or ("55") Or ("BAMBI perd MAMAN") Or ("ISM") Or ("Kiri") Or ("Laser Quest") Or ("LASER ENTERTENEMENT") Or ("SOLIDAIRE") Or ("Babar et les joyeux lutins") Then
                Cel.EntireRow.Cut
                Sheets("Hors périm").Range("A" & i).Paste
                i = i + 1
    End If
    il me surligne la ligne du if en m'indiquant erreur d'exécution '13', en me balladant sur le net,j'ai vu que c'etais un pb d'incompatibilité ou de format. ce que je ne comprends pas, c'est que je met entre "" les valeur, donc il est censé tester la chaine de caractere.

    Merci par avance.

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Si cel est un range, essai sans le .text :

    Remplace :
    Remplace par :

  3. #3
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    Ta syntaxe est mauvaise, même si c'est du text, ce qui figure dans la cellule est .Value, sinon il faut que tu identifie ta cellule, à moins que tu soit dans une boucle du type
    Mais ça je peux pas deviner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Cells(n° ligne, n° colonne).Value ="50" Or Cells(n° ligne, n° colonne).Value ="55" Or Cells(n° ligne, n° colonne).Value ="BAMBI perd MAMAN" Or Cells(n° ligne, n° colonne).Value ="ISM" Or Cells(n° ligne, n° colonne).Value ="Kiri" Or Cells(n° ligne, n° colonne).Value ="Laser Quest" Or Cells(n° ligne, n° colonne).Value ="LASER ENTERTENEMENT" Or Cells(n° ligne, n° colonne).Value ="SOLIDAIRE" Or Cells(n° ligne, n° colonne).Value "Babar et les joyeux lutins" Then
                Rows(n° de ligne).Cut
    'ou
                Cells(n° ligne, n° colonne).EntireRow.Cut
                Sheets("Hors périm").Range("A" & i).Paste
                i = i + 1
    End If

  4. #4
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    pardon j'ai pas tout mis :

    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
    Public Sub deplacement()
        Sheets.Add After:=Worksheets(Worksheets.Count)
        Worksheets(Worksheets.Count).Name = "Hors périm"
        Dim maRange As Range, Cel As Range
        Dim i As Integer
        Set maRange = Feuil1.Range("B2:B" & derniereLigneFeuil1)
        i = 2
        For Each Cel In maRange
            If Cel = ("50") Or ("55") Or ("CMS Vacances SNC") Or ("ISM") Or ("Kyrielles") Or ("Laser Contact") Or ("LASER SYMAG") Or ("SODITER") Or ("LaSer Symag Polska") Then
                Cel.EntireRow.Cut
                Sheets("Hors périm").Range("A" & i).Paste
                i = i + 1
            End If
        Next Cel
    End Sub
    Voila toute la methode qui donc créé un nouvel onglet, va chercher des lignes dans la feuille 1 et les copie dans ce nouvel onglet.

  5. #5
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    Je vois 2 erreurs:
    Il faut que tu définissent DErligneFeuil1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DerligneFeuil1= Worksheets(1).Range("A65536").End(XlUp).Row
    Ensuite il faut que tu remettes le "Cell=" à chaque condition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cel="50" Or Cell="55" Or...Then
    EDIT:

    Juste une petite remarque si je peux me permettre:

    N'utilise pas de nom ambigu genre "maRange", préfère plutôt "MaPlage" ou "Plage".
    Ensuite ça c'est perso, "DernièreLigneFeuil1" est un nom long, simplifie ça:
    "DerLigF1"

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour rapidement,
    Pour faire l'erreur d'execution 13
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub er13()
    If "a" = "a" Or "b" Then MsgBox "ok"
    End Sub
    Pour ne pas la faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub er13()
    If "a" = "a" Or "a"="b" Then MsgBox "ok"
    End Sub
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Cel = ("50") Or Cel =("55") Or Cel =...
    edit désolé diude je faisais deux chose a la fois et j'ai pas rafraichi

  7. #7
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    Citation Envoyé par Krovax Voir le message
    edit désolé diude je faisais deux chose a la fois et j'ai pas rafraichi
    C'est pas grave, ce genre de situations fréquentes il faut le dire prouvent le dynamisme de ce forum et c'est une bonne chose je pense.

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

Discussions similaires

  1. erreur d'execution 3704, ...:objet n'est pas ouvert
    Par cari dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 29/11/2005, 15h44
  2. [ERREUR D'EXECUTION] Segmentation Fault
    Par CestPasMoi dans le forum C++
    Réponses: 3
    Dernier message: 26/11/2005, 17h38
  3. Réponses: 3
    Dernier message: 03/11/2005, 18h41
  4. [LDAP][Interface Winldap.h] Erreur d'execution
    Par -=Spoon=- dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 10/03/2005, 17h10
  5. [javamail] erreur d'execution
    Par bibx dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 05/12/2003, 11h04

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