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 :

Soustraire du texte [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    VDI
    Inscrit en
    Mars 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : VDI

    Informations forums :
    Inscription : Mars 2015
    Messages : 9
    Par défaut Soustraire du texte
    Bonjour a tous,

    Je me suis créé un petit tableau excel qui scan mon dossier musique. je me retrouve donc avec en Col A les Titre.mp3 et en Col B le chemin complet du fichier c:\music\titre.mp3 sous forme de lien hypertexte "Écouter" (quand je clic dessus ça lis la musique).

    je voudrai en colonne C avoir le chemin seul sans le titre ex: C:\music\ sous forme de lien hypertexte "Afficher" pour ouvrir le dossier contenant le fichier

    la question est donc, comment lui dire de prendre le chemin complet en col B et d'y enlever le titre en Col A


    merci

    ju

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    à toi de revoir les fonctions de texte ...

    http://silkyroad.developpez.com/Exce...ionsExcel/#LII
    =NbCar() , =Gauche()...

    ou en VBA
    http://silkyroad.developpez.com/VBA/...nesCaracteres/


    Tu devrais t'en tirer avec Len() et Left()

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour
    principe
    c=replace(b,a)
    en terme de code cela pourrait ressembler a ca
    pour la 1 ere ligne si elle demarre en ligne 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [c1]=replace([B1].value,[A1].value)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre habitué
    Homme Profil pro
    VDI
    Inscrit en
    Mars 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : VDI

    Informations forums :
    Inscription : Mars 2015
    Messages : 9
    Par défaut
    Voila ca marche nickel, j'ai juste perdu 1h pour un "s", a la ligne Chemin = Left(... cell au lieu de cells

    merci de m'avoir mis sur la piste

    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
    Dim h As Long
    Dim adresseTitre As String
    Dim NBTitre As Integer
    Dim NBChem As Integer
    Dim NBLen As Integer
    Dim Chemin As String
     
    h = 2
    Do While Range("B" & CStr(h)).Value <> "" 's’arrête dés qu'il rencontre une cellule vide
    adresse = Sheets("rslts").Cells(h, "B")
    NBTitre = Len(Sheets("rslts").Cells(h, "A")) 'on compte le nombre de caractère en A
    NBChem = Len(Sheets("rslts").Cells(h, "B")) 'on compte le nombre de caractère en B
    NBLen = NBChem - NBTitre 'on soustrait A a B
    MsgBox NBChem 'indique le nombre de caractère dans B
    MsgBox NBTitre 'indique le nombre de caractères dans A
    MsgBox NBLen 'Resultat de B - A
    Chemin = Left(Sheets("rslts").cells(h, "B").Value, NBLen) 'on garde le nombre de caractère de B calculé précédemment
    MsgBox Chemin
     
    ActiveSheet.Hyperlinks.Add Anchor:=Range("B" & CStr(h)), Address:="file:" & adresse, TextToDisplay:="Ecouter"
    ActiveSheet.Hyperlinks.Add Anchor:=Range("C" & CStr(h)), Address:="file:" & Chemin, TextToDisplay:="Afficher"
    h = h + 1
    Loop

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    entre nous il y avait beaucoup plus simple
    un simple replace aurait suffi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  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

    Bonjour, bonjour !

    Le plus simple (et sans la colonne A !) : via Split & Join ou InStrRev & Left

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Demo1()
        B$ = "c:\music\titre.mp3"
        SP = Split(B, "\"):  SP(UBound(SP)) = ""
        MsgBox Join$(SP, "\")
    End Sub
     
    Sub Demo2()
        B$ = "c:\music\titre.mp3"
        MsgBox Left$(B, InStrRev(B, "\"))
    End Sub
    _____________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse

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

Discussions similaires

  1. afficher du texte
    Par Mau dans le forum OpenGL
    Réponses: 10
    Dernier message: 24/06/2003, 16h31
  2. taille du texte dans un viewport
    Par pitounette dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/07/2002, 13h06
  3. combobox->text
    Par clovis dans le forum C++Builder
    Réponses: 18
    Dernier message: 21/06/2002, 16h43
  4. fichier binaire ou texte
    Par soussou dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/06/2002, 14h39
  5. Réponses: 2
    Dernier message: 10/06/2002, 12h03

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