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 :

toujours ces maudites boucles


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Points : 116
    Points
    116
    Par défaut toujours ces maudites boucles
    Bonjour,

    Voici mon souci: les tableaux qie je reçois ne sont pas toujours bien remplis. Par exemple: au lieu de marquer "ABS", on marque "ABS " (avec un espace). Du coup lorsque je fais des regroupements, j'ai deux catégories "ABS" alors qu'en fait il y en a qu'une seule. Du coup il faut que je "nettoie" mes tableaux. J'ai essayé de faire quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub boucle_nettoyage_pole()
    Dim c, col As Range
    Dim cString, strABS As String
     
    ActiveSheet.[B16].Select
    'Set col = [B16].CurrentRegion.End(xlDown).Activate
     
    If (ActiveCell.Offset(1, 0)) > "" Then
        For Each c In Columns("B:B")
            If Left(cString, 3) = "ABS" Then c.Value = strABS
        Next
    End If
    End Sub
    Mais ça ne marche poas Quelqu'un a une idée?

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour sash6

    pour moi la boucle est ok, c'est l'interieur qui n'est pas bon

    If Left(cString, 3) = "ABS" Then c.Value = strABS
    si c'est pour enlever les espaces :

    c = ltrim(rtrim(c))
    doit suffire

    la ligne avec un if

    if left(c,3)="ABS" then c = "ABS"
    cordialement

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Bonjour,
    Regarde a "Trim" dans l'aide VBA

  4. #4
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Points : 116
    Points
    116
    Par défaut
    D'accord, je vois le truc. Sauf que c est défini en tant que range, du coup je ne peux l'utiliser dans:
    If Left(c, 3) = "ABS" Then c = "ABS"
    c'est du string qu'il faut...

    cordialement

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each c In Range("B:B") 'chez moi columns avec un type range plante...
            If Not IsEmpty(c) Then 'facultatif mais accelere le code
            c.Value = Trim(c.Value)
            end if
    Next c
    Ca enlevera tous les espaces en debut et fin de chaine

  6. #6
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Points : 116
    Points
    116
    Par défaut
    Merci tonton Fred ça marche nickel na zdrove (c'est comme ça non en polonais?)

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Presque, c'est na zdrowie

  8. #8
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    Citation Envoyé par sash6
    D'accord, je vois le truc. Sauf que c est défini en tant que range, du coup je ne peux l'utiliser dans:

    c'est du string qu'il faut...

    cordialement
    une petite precision sash6 quand tu mets entre " --> C'est du string

    c.value = 10 c'est du numerique
    c.value = "ABS" c'est du string

    cordialement

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

Discussions similaires

  1. toujours les variables apres une boucle
    Par lrgtk dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 05/09/2010, 15h22
  2. [Débutant] encore et toujours les boucles
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 6
    Dernier message: 04/03/2010, 17h14
  3. [RegEx] Toujours ces ereg
    Par Kerod dans le forum Langage
    Réponses: 7
    Dernier message: 02/02/2006, 14h12
  4. toujours ces dates Access malgré le FAQ
    Par kleenex dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 14h04
  5. Pouvez vous m'aider a resoudres ces 3 exercices
    Par algorithmique dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 09/08/2002, 17h26

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