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 :

Premier caractère d'une cellule


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
    Mars 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 26
    Par défaut Premier caractère d'une cellule
    bonjour,

    j'ai créé la procedure suivante pour lire le premier caractère d'une cellule et rajouter un T à la valeur de la cellule si elle ne commence pas par T ou N.
    Or lorque je lance la procedure, j'obtiens comme variable lettre="A" au lieu de "T" lorsque je teste ma premiére cellule or elle a comme valeur "T11000"

    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
    Sub rajoutT(destinxlsfile, u)
     
    Dim z As Integer
    Dim lettre As String, nlvaleur As String
     
    Windows(destinxlsfile).Activate
    For z = 2 To u
           lettre = Left(("A" & z), 1)
           MsgBox (lettre)
           If lettre <> "T" Or "N" Then
                nlvaleur = "T" & Range("A" & z)
                Range("A" & z) = nlvaleur
            End If
    Next z
    End Sub
    Je ne vois pas où je fais l'erreur. Si vous avez une idée, merci pour vos remarques.

    bonne journée

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    bonjour,

    relis ce que tu as écrit !

    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If lettre <> "T" Or "N" Then
    ne sifgnifie rien !
    2) si tu écrit (compréhensible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If lettre <> "T" Or lettre "N" Then
    celà veut dire que "T" n'est pas dans ce cas (puisque <> "N" !!

    je crois que tu veux plutôt dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If lettre <> "T" And lettre <> "N" Then
    Non ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 26
    Par défaut exact
    Merci pour cette remarque.

    En effet, j'avais mal défini mon test en if.

    Par contre j'ai toujours la variable lettre="A" quelque soit la valeur de la première lettre de la cellule. il me rajoute donc systématiquement un T.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Je ne sais pas ce que tu fabriques...

    Voilà une simulation de démonstration :

    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
    Private Sub Command1_Click()
       macellule = "Voyons donc" 'ne commence ni par N ni par T
       lettre = Left(macellule, 1)
       If lettre <> "T" And lettre <> "N" Then
         macellule = "T" & macellule
       End If
      'va donc rajouter un T
       MsgBox macellule
     
       macellule = "Tiens donc" 'commence  par T
       lettre = Left(macellule, 1)
       If lettre <> "T" And lettre <> "N" Then
         macellule = "T" & macellule
       End If
       'ne rajoute rien
       MsgBox macellule
    End Sub
    Reste à savoir si tu lis bien ta cellule (et cela est une autre paire de manches)

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut devvba et le forum
    on vient de te dire de relire ton code
    Quand on patauge, on regarde chaque ligne en vérifiant si ce qu'on écrit correspond à ce qu'on voulait !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub rajoutT(destinxlsfile, u)
    Dim z As Integer
    Dim lettre As String, nlvaleur As String
    Windows(destinxlsfile).Activate
    For z = 2 To u
           lettre = Left(("A" & z), 1) )XXXXXXXXXXXXXXXXXXXXXXXXXXX
           MsgBox (lettre)
           If lettre <> "T" Or "N" Then
                nlvaleur = "T" & Range("A" & z)
                Range("A" & z) = nlvaleur
            End If
    Next z
    End Sub
    lettre = Left(("A" & z), 1) ) ?
    1re lettre de "A2","A3",... ,"Au" c'est "A"
    lettre = Left(Range("A" & z), 1) ) et peut-être moins source de problème ?

    A+
    PS je ne suis pas revenu sur l'erreur corrigée par ucfoutu, puisqu'il l'avait déjà corrigé

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 26
    Par défaut voila ce que je fabrique
    D'abord merci à vous.

    Voila j'ai la colonne A sur ma feuille destinxlsfile qui contient des informations d'article de type T1200 ou N3394 mais parfois les fournisseurs oublient la première lettre et marque uniquement le numéro exemple 13020.

    Mon but est de lister ma colonne et de mettre un T si le champ n'a pas lettre avant le numéro.

    j'ai modifié en suivant tes instructions Gorfae et ça marche, merci.

    Quand j'ai utilisé la commande left, j'ai essayé de copier l'exemple donné par Abed_H dans le forum sous "Piocher seulement quelques lettres dans une cellule" page 3. Mais sans success, maintenant avec range, ça fonctionnne

    bonne journée et encore merci.

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

Discussions similaires

  1. Supprimer les 5 premiers caractères d'une cellulle dans un TCD
    Par had4789 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/08/2014, 15h50
  2. [XL-2000] test sur le premier caractère d'une cellule
    Par dybmans dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/10/2010, 10h47
  3. Réponses: 2
    Dernier message: 14/06/2006, 09h30
  4. filtre WHERE sur premier caractère d'une colonne
    Par Maljuna Kris dans le forum Requêtes
    Réponses: 8
    Dernier message: 20/11/2005, 18h52
  5. Supprimer le premier caractère d'une chaine de caractères
    Par Droïde Système7 dans le forum Langage
    Réponses: 2
    Dernier message: 30/09/2005, 11h13

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