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 :

Problème d'utilisation de la fonction len


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut Problème d'utilisation de la fonction len
    Je dois faire quelques macros pour le boulot mais j'ai quelques difficultés étant novice en VBA, c'est vraissemblablement dans l'utilisation de la fonction len.
    J'ai crée 2 variables longueur1 et longueur2 qui calculent la longueur d'une chaine gràce à la fonction len(). Puis quand je les mets dans la fonction left() j'ai une erreur "argument ou appel de procédure incorrect" alors que quand je remplace longueur1 et longueur2 par 4 par exemple il n'y a pas de problème (a part que la fonction ne fait pas ce que je lui demande).
    Savez-vous d'ou vient ce problème ?

    Merci beaucoup d'avance.


    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
    Sub filtragefichierelec()
    '
    ' Macro1 Macro
    ' Macro enregistree le 25/06/2010 par ALJ
    '
    Dim Var1 As Integer
    Dim Var2 As Integer
    Dim Var3 As Integer
    Dim VarB1 As Integer 'variable qui designe le numero de ligne actuel dans le fichier elec
    Dim VarB2 As Integer
    Dim Compteur1 As Integer
    Dim Compteur2 As Integer
    Dim longueur1
    Dim longueur2
    Var1 = Worksheets("feuille de config").Cells(1, 2).Value 'colonne du nom des actionneurs
    Var2 = Worksheets("feuille de config").Cells(3, 2).Value 'nombres de lignes
    Var3 = Worksheets("feuille de config").Cells(4, 2).Value 'colonne du commentaire
    Compteur1 = 3
    Compteur2 = 3
     
    For VarB1 = 2 To Var2
     
     
     
    If Left(Worksheets("fichier electrique modifie").Cells(VarB1, Var1), 1) = "M" And Right(Worksheets("fichier electrique modifie").Cells(VarB1, Var1), 2) = "IM" Then
    Worksheets("fichier elec").Cells(VarB1, Var1).Value = ""
    End If
     
     
    If Left(Worksheets("fichier electrique modifie").Cells(VarB1, Var1), 1) = "V" And Right(Worksheets("fichier electrique modifie").Cells(VarB1, Var1), 2) = "IO" Or Right(Worksheets("fichier electrique modifie").Cells(VarB1, Var1), 2) = "IC" Then
     
    For VarB2 = 2 To Var2
     
           longueur1 = Len(Worksheets("fichier electrique modifie").Cells(VarB2, Var1)) - 2
           longueur2 = Len(Worksheets("fichier electrique modifie").Cells(VarB1, Var1)) - 2
     
           If (Left(Worksheets("fichier electrique modifie").Cells(VarB2, Var1), longueur1)) = Left(Worksheets("fichier electrique modifie").Cells(VarB1, Var1), longueur2) And (Right(Worksheets("fichier electrique modifie").Cells(VarB2, Var1), 2) = "CC" Or Right(Worksheets("fichier electrique modifie").Cells(VarB2, Var1), 2) = "CO") Then
            Worksheets("fichier electrique modifie").Cells(VarB1, Var1).Value = ""
            End If
        Next VarB2
    End If
     
    Next VarB1
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    quel est la valeur de ton len au moment du plantage ?

    ton code permet une valeur négative....

    cordialement,

    Didier

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut
    merci beaucoup effectivement ma fontion len pouvait renvoyer une valeur inférieur à 0, j'ai ajouté un if longueur1>0 and longueur2>0 et ça marche.
    Vraiment désolé car mon problème était vraiment idiot.
    Cordialement.

    ps: comment mettre résolu ?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/12/2008, 22h18
  2. problème d'utilisation de la fonction cceps
    Par picard64 dans le forum Signal
    Réponses: 0
    Dernier message: 16/06/2008, 10h28
  3. Réponses: 4
    Dernier message: 29/05/2007, 10h03
  4. [DOS] probléme d'utilisation de la fonction CALL
    Par Benjamin_es dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 19/03/2007, 16h01
  5. Utilisation de la fonction Len()
    Par metalamania dans le forum Général Python
    Réponses: 5
    Dernier message: 14/02/2007, 17h42

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