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 :

Trouver les x derniers caractères d'une chaine en fonction des y premiers


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut Trouver les x derniers caractères d'une chaine en fonction des y premiers
    Bonjour,

    j'ai la chaine de caractere "janvier 2009", je veux faire le teste suivant: si je trouve la chaine "janvier " seulement, comment je peux faire pour qu'il ne prend pas en consideration les 4 dernier caracteres avec VBA? genre "janvier ????"

    merci

  2. #2
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Bonjour,

    tu peux utiliser l'opérateur "like"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyCheck = "aBBBa" Like "a*a"    ' Renvoie True.
    Mais dans notre cas, on utilisera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyCheck = VariableAVerifier Like "Janvier ####"    ' Renvoie True.
    "janvier *" peut fonctionner mais vérifie peut importe ce qu'il a après ("Janvier af3g4hgaehdehdfh") serait True
    Alors utilise #### Pour vérifier qu'il a 4 positions numériques.

    Et dans l'aide de like
    ?Tout caractère unique.*Aucun ou plusieurs caractères.#Tout chiffre unique (de 0 à 9).[charlist]Tout caractère unique compris dans l'argument charlist.[!charlist]Tout caractère unique non compris dans l'argument charlist.
    J'espère que ceci fera l'affaire!

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    j'ai fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Case "Janvier ####"
                        DebJanvier1 = LigP
                        'MsgBox (DebJanvier1)

    mais ça marche pas

  4. #4
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    la chaîne de caractères ? dans une cellule? si tu entres en c3 janvier 2009 Excel va te retourner un nombre ou "01/01/2009"
    faire la différence entre ce qu'Excel affiche et ce qu'il calcule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub chainage()
    p$ = Str(Range("c3").Value)
    ' retour  "01/01/2009"
    If Mid(p$, 4, 2) = "01" Then
    'le topo
    End If
    End Sub

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    beinn moi je connais pas dans quelle cellule se trouve cette chaine, donc je dois faire un parcour de toute la feuille.

  6. #6
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Est-ce que tu dois trouver où se trouve ce "Janvier ...."
    si oui, un For Each avec condition like "Janvier ####"

  7. #7
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    oui c ça .
    bon je vais l'ssayer demain, car là je suis pas au boulot

  8. #8
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Voici comment trouver ta cellule :
    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
    Sub Chercher()
        Dim c As Range
        Dim sh As Worksheet
        Dim cell
     
        Set sh = ActiveSheet
     
        For Each cell In sh.Cells
     
            If cell.Value Like "Janvier ####" Then
                Set c = cell
                Exit For
            End If
     
        Next cell
     
        If Not c Is Nothing Then
            MsgBox c.Address
        Else
            MsgBox "Pas trouvé"
        End If
     
    End Sub

  9. #9
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    oui mais ça , ne va pas me retourner le numero de la ligne.
    moi je dois recuperer le numero de la ligne ou se trouve la chaine.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par nsqualli Voir le message
    oui mais ça ne va pas me retourner le numero de la ligne.
    moi je dois recuperer le numero de la ligne ou se trouve la chaine.
    Si ... bien sûr ... tu n'as pas testé le code ... car la ligne
    te donnera la cellule (colonne et ligne)
    A +

  11. #11
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    ça me donne une erreur d'incompatibilité de type '13' dans la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If cell.Value Like "Janvier ####" Then

  12. #12
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    C'est bon, j'ai trouvé la solution grace a votre aide, j'ai fais cela et ça marche tres bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Case Else
                        If .Range("G" & LigP).Value Like "Janvier ####" Then
                            DebJanvier1 = LigP
                            MsgBox (DebJanvier1)
                        End If
    Merci a tout le monde

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2014, 12h47
  2. copier les 2 derniers caractères d'une chaine
    Par goran kajfes dans le forum C
    Réponses: 2
    Dernier message: 14/04/2010, 09h41
  3. Supprimer les 4 derniers caractères d'une chaine
    Par orditosh dans le forum WinDev
    Réponses: 4
    Dernier message: 28/06/2008, 12h40
  4. lire les 3 dernier caractère d'une chaine
    Par kanzarih dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 15/05/2008, 15h25
  5. [Tableaux] Suppresion du dernier caractère d'une chaine
    Par GarGamel55 dans le forum Langage
    Réponses: 15
    Dernier message: 19/02/2006, 22h27

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