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 :

Supprimer ou extraire texte et variable 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
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Par défaut Supprimer ou extraire texte et variable d'une cellule
    Bonjour,

    Je sollicite votre aide pour un problème pour lequel je n'ai pas trouvé de solution malgré une recherche intensive sur beaucoup de forums..
    Ce que j'aimerai faire
    j'ai par exemple une colonne avec des lignes qui se suivent de type :
    Normal : menu_principal/21/menu53/1/menu54/1/
    Normal : menu_principal/20/menu53/1/menu54/1/
    Normal : menu_principal/28/menu41/1/menu42/*/menu41/3/

    J'aimerai pouvoir supprimer le "Normal : menu_principal/ZZ/", les "menuZZ" ainsi que les "/*/" (ZZ sont les nombres que l'on voit dans les lignes ci-dessus) afin qu'il ne me reste plus que les /1/, /2/, /3/

    Voici pour le moment ce que j'ai tenté de faire, mais les nombres que je souhaite supprimer n'accroche pas aux variables de mon code :

    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
    Sub txt()
     
    Dim X As Long
    Dim Z As integer
     
    For X = 1 To Range("A" & Application.Rows.Count).End(xlUp).Row
     
    Sheets("TEST").Select
    Range("A" & X) = Replace(Replace(Replace(Range("A" & X), "Normal : menu_principal/", ""), "/menu" + ZZ, ""), "/*/", "")
     
     
    Sheet("TEST").Select
      Column("A").Select
        Selection.Copy
      Column("E").Select
     
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
    End Sub
    Si quelqu'un a une astuce ce serait super !
    Merci

    François

  2. #2
    Expert éminent
    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
    Par défaut
    Bonjour,

    merci d'uiliser l'icône # dévolue au code …

    Afin d'enlever toute ambiguïté, la présentation d'un tableau chaine source - résultat désiré serait un plus pour une solution.

  3. #3
    Membre éclairé Avatar de verredewhisky
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Janvier 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Janvier 2013
    Messages : 63

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Par défaut
    Merci des infos, je vais creuser, bien que je me sens un peu perdu sur ce que je pourrait utiliser.

    Il n'y a pas un moyen simple en VBA de définir dans mon "Normal : menu_principal/ZZ/" que le ZZ en question est un nombre à deux chiffre qui varie et qui doit être pris en compte ?

    Pour être plus précis, ma question est : peut on demander à VBA de rechercher une chaine de caractère comprenant une partie fixe et une partie variable ?

    Si vous avez plus d'indications à me donner pour résoudre le problème je suis preneur..!
    Merci

    François

  5. #5
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut supprimer ou extraire texte et variable d'unne cellule
    Bonjour,

    Peut-être quelque chose comme ceci.
    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
     
    Sub extract()
    sch = ""
    derlig = Range("a65536").End(xlUp).Row
    'Cells(1, 3) = derlig
    For i = 2 To derlig
        ext = Split(Cells(i, 1), "/")
        For j = 0 To UBound(ext) - 1
            If IsNumeric(ext(j)) Then
               sch = sch + "/" & ext(j) & "/;"
            End If
            Cells(i, 2) = sch
        Next j
        sch = ""
    Next i
    End Sub
    Il t'appartiendra de l'améliorer si cette approche te convient.

    Cordialement

  6. #6
    Expert éminent
    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
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Afin d'enlever toute ambiguïté, la présentation d'un tableau chaine source - résultat désiré serait un plus pour une solution
    Est-ce vraiment si difficile ?

    Si j'ai bien compris, tu veux conserver uniquement la fin ? En gardant les / ?

    Si c'est juste cela, en reprenant ton code initial, c'est vraiment simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        With Cells(X, 1)
            .Value = Mid$(.Value, InStrRev(.Value, "/", Len(.Value) - 1))
        End With
    Et si la fin est toujours composée d'un seul chiffre entre /, il y a vraiment plus simple !

    Cells(X, 1).Value = Right$(Cells(X, 1).Value, 3) …
    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    __________________________________________________________________________________________
    Quelle époque terrible que celle où des idiots dirigent des aveugles. (Shakespeare)

  7. #7
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut supprimer ou extraire texte et variable d'unne cellule
    Bonjour Marc,

    Selon ce que j'ai compris et essayé de faire ? il veut conserver uniquement les valeurs numériques encadrées de "/".

    Il lui faudra éventuellement remplacer séparateur ";" par des "," ou des "espaces " et vraisemblablement supprimer le dernier ";" superflu dans ma proposition.

    De plus, il lui appartiendra de savoir s'il veut remplacer les chaines existantes ou mettre la nouvelle chaine à coté comme fait dans le code.

    Il m'aura fallu pas moins d'une heure pour sortir tant bien que mal ce bout de code.
    C'est dire que ce n'est pas demain la veille que je parviendrai à codifier ma gestion immeuble (je suis syndic bénévole).

    Cordialement.

  8. #8
    Expert éminent
    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
    Par défaut

    J'ai demandé des éclaircissements afin d'enlever toute ambiguïté

    Sinon autant pour moi !

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

Discussions similaires

  1. Extraire a des variable d'une cellules
    Par laurent27530 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/01/2015, 11h04
  2. Réponses: 6
    Dernier message: 22/09/2014, 16h20
  3. Réponses: 10
    Dernier message: 18/07/2014, 15h49
  4. Réponses: 10
    Dernier message: 24/02/2014, 15h22
  5. Réponses: 6
    Dernier message: 17/03/2006, 12h23

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