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 :

Reprendre une partie du nom de l'onglet d'une feuille de calcul


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut Reprendre une partie du nom de l'onglet d'une feuille de calcul
    Bonjour à tous,

    Est-il possible de reprendre une partie du nom de l'onglet d'une feuille de calcul et de la copier dans une cellule.

    J'ai 29 feuilles de calcul qui se nomment Fich1, Fich2,etc... J'aimerai pouvoir récupérer en C2 de chaque feuille le numéro de la fiche, par exemple pour la feuille Fich1, ne récupérer que le 1.

    Merci par avance pour votre aide

  2. #2
    Membre actif
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Points : 269
    Points
    269
    Par défaut
    Bonjour,

    Voila qui devrait faire l'affaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub RecupNo()
     
    Dim wb As Workbook
    Dim sh As Worksheet
     
    Set wb = ThisWorkbook
     
        For Each sh In wb.Worksheets
            If Left(sh.Name, 4) = "Fich" Then
                sh.Range("C2") = Right(sh.Name, Len(sh.Name) - 4)
            End If
        Next
     
    End Sub

  3. #3
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Bonjour
    Ceci devrait faire cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub numero()
    For j = 1 To ActiveWorkbook.Sheets.Count
    ActiveSheet.Cells(2, 3) = Mid(ActiveSheet.Name, 5)
    Next j
    End Sub

  4. #4
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut obtenir numéro
    Bonjour à vous, Bonjour au Forum,

    A mon sens, mieux vaudrait rendre variable la longueur du nombre extrait.

    Pour ce faire, on peut envisager de parcourir la chaine de caractères (exemple: le nom d'une feuille de travail) en créant une fonction de ce type

    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
    Public Function extrnumber(lachaine As String) As Integer
     
    Dim i As Byte
    Dim a As String
     
    For i = 1 To Len(lachaine)
            a = Mid(lachaine, i, 1)
            If IsNumeric(a) Then
                    'Ajouter 0 revient à obtenir un entier
                    extrnumber = Right(lachaine, Len(lachaine) - i + 1) + 0
                    Exit For
            End If
    Next i
     
    End Function
    Ainsi, la procédure...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub essai()
    Debug.Print extrnumber("Fich250")
    End Sub
    ...retourne 250.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Merci à tous pour vos réponses. Elles fonctionnent toutes les 3, je n'ai plus qu'à faire mon choix.

    Encore mille mercis

  6. #6
    Membre actif
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Points : 269
    Points
    269
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Bonjour à vous, Bonjour au Forum,

    A mon sens, mieux vaudrait rendre variable la longueur du nombre extrait.

    Pour ce faire, on peut envisager de parcourir la chaine de caractères (exemple: le nom d'une feuille de travail) en créant une fonction de ce type

    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
    Public Function extrnumber(lachaine As String) As Integer
     
    Dim i As Byte
    Dim a As String
     
    For i = 1 To Len(lachaine)
            a = Mid(lachaine, i, 1)
            If IsNumeric(a) Then
                    'Ajouter 0 revient à obtenir un entier
                    extrnumber = Right(lachaine, Len(lachaine) - i + 1) + 0
                    Exit For
            End If
    Next i
     
    End Function
    Ainsi, la procédure...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub essai()
    Debug.Print extrnumber("Fich250")
    End Sub
    ...retourne 250.
    Ma fonction egalement marche, puisque j'enleve le FICH, donc peut importe le nombre de chiffre, ca marche.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Citation Envoyé par Guiiand Voir le message
    Ma fonction egalement marche, puisque j'enleve le FICH, donc peut importe le nombre de chiffre, ca marche.
    Je confirme ça marche.
    René

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

Discussions similaires

  1. Suppression d'une partie du nom de l'onglet
    Par damien29 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/05/2011, 16h41
  2. Récupérer dans une variable une partie du nom d'un onglet
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2008, 16h34
  3. Réponses: 2
    Dernier message: 18/01/2007, 21h05
  4. Recherche de doublons sur une partie du nom
    Par ch851 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/11/2006, 21h08
  5. [VBA-A]passer en paramètre une partie du nom de tables?
    Par pheno82 dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/03/2006, 11h26

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