Trier des feuilles excel par nom [Résolu/Fermé]

Messages postés
5
Date d'inscription
lundi 26 février 2018
Statut
Membre
Dernière intervention
28 février 2018
- - Dernière réponse : yg_be
Messages postés
9061
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 décembre 2019
- 28 févr. 2018 à 08:04
Bonjour, je cherche a trier des feuilles excel que j'importe sur un classeur (en copiant/collant les valeurs).
l'idée serait de transférer les données sur des onglets ayant un nom spécifique.
Chaque feuille importée a un nom spécifique dans la case A1.
exemple: Feuille1 A1: S17-G001701 a envoyer dans l'onglet S17-G001701
Feuille1 A1: S17-A106006 a envoyer dans l'onglet S17-A106006...
y a t'il une programmation VBA simple pour réaliser cette opération, je suis ultra novice en VBA et ça me prends un temps fou pour le faire sans macro.
Merci d'avance aux gentils répondants.
Afficher la suite 

2 réponses

Messages postés
9061
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 décembre 2019
464
0
Merci
bonsoir, voudrais-tu automatiquement renommer toutes les feuilles en fonction de la valeur en A1? 
si oui:
Option Explicit

Public Sub nilangelo()
Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets
    If sh.[A1] <> "" Then
        sh.Name = sh.[A1]
    End If
Next sh
End Sub
yg_be
Messages postés
9061
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 décembre 2019
464 > nilangelo
Messages postés
5
Date d'inscription
lundi 26 février 2018
Statut
Membre
Dernière intervention
28 février 2018
-
"ça ne fonctionne pas"=?
message d'erreur, résultat inattendu, ?
nilangelo
Messages postés
5
Date d'inscription
lundi 26 février 2018
Statut
Membre
Dernière intervention
28 février 2018
-
resultat inattendu. Mais je pense que ma strategie n'est pas bonne. j'ai resolu le premier probleme du transfert de feuille, maintenant j'essaye d'utiliser la valeur de la cellule A1 pour nommer mon onglet mais l'ensemble fait 33 caracteres et je suis limité à 31.
As tu une solution a mon probleme?
Comment prendre seulement les 11 premiers caracteres de ma cellule?
Merci encore
yg_be
Messages postés
9061
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 décembre 2019
464 > nilangelo
Messages postés
5
Date d'inscription
lundi 26 février 2018
Statut
Membre
Dernière intervention
28 février 2018
-
peut-être:
Option Explicit

Public Sub nilangelo()
Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets
    If sh.[A1] <> "" Then
        sh.Name = left(sh.[A1],11)
    End If
Next sh
End Sub
nilangelo
Messages postés
5
Date d'inscription
lundi 26 février 2018
Statut
Membre
Dernière intervention
28 février 2018
-
Merci pour ta reponse. J'ai reussi en mode crado la sequence que je voulais faire... Rien de tres conventionnel par rapport a ce que je vois sur le net mais ca marche.
Encore merci pour le temps consacré.
yg_be
Messages postés
9061
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 décembre 2019
464 > nilangelo
Messages postés
5
Date d'inscription
lundi 26 février 2018
Statut
Membre
Dernière intervention
28 février 2018
-
super, peux-tu marquer le sujet comme résolu, via la roue dentée à droite du titre?
Messages postés
6422
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
6 décembre 2019
420