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 :

séparation d'extension sur nom de fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Par défaut séparation d'extension sur nom de fichier
    Voila j'ai fait une petite sub qui sépare le nom d'un fichier de son extension.
    Mais je trouve que ma routine est particulierement lourde
    Avez vous une autre solution plus pro ou plus bidouille ( deuligne !)

    voila un bout de ma sub
    en A1 : nom du fichier avec extensio ( ex: Photo_de_vacance_001.jpg )

    Aprés lancement de la moulinette

    on obtient
    en B1 : Photo_de_vacance_001
    en C1 : jpg

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim A As String
    Sub extraire()
    A = Range("A1").Value
    For R = Len(A) To 1 Step -1
        C = Mid(A, R, 1)
        If C = "." Then
        solution = Left(A, R - 1)
        extension = Right(A, Len(A) - R)
        R = 0
        End If
    Next R
    Range("B1").Value = solution
    Range("C1").Value = extension
    End Sub
    A+

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Essaie en regardant dans l'aide en ligne : InStrRev ( voir plus bas )

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub extension()
    Dim X%, Chaine$
    Chaine = Range("A1").Value
    X = Len(Chaine)
    Range("B1") = Mid(Chaine, 1, X - 4)
    Range("C1") = Mid(Chaine, X - 2)
    End Sub

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    En pensant à Excel 2007 par exemple ( extension xlsm,docx etc )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Explicit
    Sub extension2()
    Dim X As Integer, Chaine As String, Pos As Integer
        Chaine = Range("A1").Value
        Pos = InStrRev(Chaine, ".")
        If Pos > 0 Then
            Range("B1") = Left(Chaine, Pos - 1)
            Range("C1") = Right(Chaine, Len(Chaine) - Pos)
        End If
    End Sub

  5. #5
    Membre confirmé Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Par défaut
    Merci pour vos reponses rapides

    ok fring ta solution doit marcher mais si l'extension ne fait pas 3 caractères il y a problème ( je ne l'avais pas précisé dans mon post )

    je retiens la solution de kiki29
    voici mon adaptation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim A As String
    Sub extraire()
    A = Range("A1").Value
    r = InStrRev(A, ".")
    If r <> 0 And A <> "" Then
        solution = Left(A, r - 1)
        extension = Right(A, Len(A) - r)
        Else
        solution = A
        extension = ""
    End If
    Range("B1").Value = solution
    Range("C1").Value = extension
    End Sub
    encore merci et bonsoir....

  6. #6
    Membre confirmé Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Par défaut
    merci kiki29 nos réponses se sont croisées !

  7. #7
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par Oh!Tofocus Voir le message
    Merci pour vos reponses rapides

    ok fring ta solution doit marcher mais si l'extension ne fait pas 3 caractères il y a problème ( je ne l'avais pas précisé dans mon post )
    J'y avais pensé, mais je ne connais pas beaucoup de types de fichiers comportant + ou - que 3 caractères dans l'extension.

    aaah je viens de lire la réponse de kiki, je ne savais pas que Bilou avait modifié les extensions dans la version 2007, ok on oublie ma solution
    Bonne soirée

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

Discussions similaires

  1. indirection sur nom de fichier/rubrique ?
    Par scarface38 dans le forum WinDev
    Réponses: 2
    Dernier message: 09/03/2009, 09h47
  2. [batch] supprimer extension des noms de fichiers dans un texte
    Par mirage59 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 06/03/2009, 13h47
  3. Ouverture conditionnelle sur nom de fichier
    Par cchampion2fr dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 07/10/2008, 10h46
  4. Associer l'extension au nom du fichier.
    Par Linu6 dans le forum Linux
    Réponses: 4
    Dernier message: 20/08/2007, 23h02
  5. Réponses: 5
    Dernier message: 31/05/2007, 18h42

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