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 :

probleme avec la fct left [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Inscrit
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Points : 104
    Points
    104
    Par défaut probleme avec la fct left
    bonjour à tous

    mes données:
    colonne A
    0000114
    0000114
    0010114
    0020114
    0050114

    Je veux que la colonne B m'envoie la soustraction des 3 nombres de chaque réf et la réf suivant .
    j'ai développé une macro pour ce but

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each cell In Sheets("SUIVI").Range("a2:a" & Sheets("SUIVI").Range("a65536").End(xlUp).Row)
    cell.offset(0,1).value=left(cell.offset(1,0),3)-left(cell,3)
    next
    la macro me donne un message d'erreur.
    merci à vous.

  2. #2
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    compléter la présentation par le contenu de la colonne B afin d'y comprendre quelque chose
    et indiquer précisément le message d'erreur et la ligne le déclenchant …


  3. #3
    Inscrit
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Points : 104
    Points
    104
    Par défaut
    merci à vous
    la colonne B est vide
    et je veux qu'il affiche les résultats :
    000-000=000
    001-000=001
    002-001=001
    005-002=003
    le message d'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    erreur d'execution '13'
    Incompatibilité de type
    la ligne le déclenchant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cell.offset(0,1).value=left(cell.offset(1,0),3)-left(cell,3)
    merci.

  4. #4
    Membre averti
    Homme Profil pro
    Ctrl Gestion
    Inscrit en
    Octobre 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ctrl Gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 177
    Points : 363
    Points
    363
    Par défaut
    Bonjour abouhossam,Marc-L, Le Forum

    La fonction Left te retourne une chaine de caractères, pour pouvoir faire une opération dessus tu dois convertir cette chaine en numérique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      Dim cell As Variant
      For Each cell In Sheets("SUIVI").Range("a2:a" & Sheets("SUIVI").Range("a65536").End(xlUp).Row)
      If Left(cell.Offset(1, 0), 3) = "" Then Exit For
      cell.Offset(0, 1).Value = CInt(Left(cell.Offset(1, 0), 3)) - CInt(Left(cell, 3))
      Next
    Slts

  5. #5
    Inscrit
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Points : 104
    Points
    104
    Par défaut
    merci danixdb
    ta macro marche bien
    j'ai trouvé une autre méthode en utilisant les fcts : Mid et Len
    le code c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cell As Range
      For Each cell In Sheets("SUIVI").Range("a2:a" & Sheets("SUIVI").Range("a65536").End(xlUp).Row)
      cell.Offset(0, 1).Value = -Mid(cell, 1, Len(cell) - 4) + Mid(cell.Offset(1, 0), 1, Len(cell.Offset(1, 0)) - 4) 
      Next
    le code marche très bien aussi.
    merci à tous
    bonne weekend.

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

Discussions similaires

  1. [debutant] probleme avec un float:left
    Par Knightrider76 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 10/07/2007, 10h59
  2. Probleme avec fonction Left et Right
    Par aliboubou dans le forum Access
    Réponses: 1
    Dernier message: 11/01/2007, 15h02
  3. probleme avec LEFT JOIN multi tables
    Par hinsano dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/07/2006, 07h36
  4. Réponses: 8
    Dernier message: 12/05/2006, 00h18
  5. Probleme avec fct° To_Char
    Par the_edge dans le forum Oracle
    Réponses: 5
    Dernier message: 17/02/2005, 11h45

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