Créer feuille selon valeur

Résolu
aubioine Messages postés 19 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 19 novembre 2013 - 15 nov. 2013 à 19:06
aubioine Messages postés 19 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 19 novembre 2013 - 19 nov. 2013 à 20:57
Bonjour,

J'ai un classeur sous la forme suivante :

ColonneA // ColonneB // ColonneC // ...
Valeur 1 // Sous-Valeur1 / Sous-Sous-Valeur1
Valeur 1 // Sous-Valeur2 / Sous-Sous-Valeur2
Valeur 1 // Sous-Valeur3 / Sous-Sous-Valeur3
Valeur 1 // Sous-Valeur4 / Sous-Sous-Valeur4
Valeur 2 // Sous-Valeur5 / Sous-Sous-Valeur5
Valeur 2 // Sous-Valeur6 / Sous-Sous-Valeur6
Valeur 2 // Sous-Valeur7 / Sous-Sous-Valeur7
Valeur 2 // Sous-Valeur8 / Sous-Sous-Valeur8
Valeur 3 // Sous-Valeur9 / Sous-Sous-Valeur9
Valeur 3 // Sous-Valeur10 / Sous-Sous-Valeur10
Valeur 3 // Sous-Valeur11 / Sous-Sous-Valeur11
Valeur 3 // Sous-Valeur12 / Sous-Sous-Valeur12
...etc

et je voudrai enregistrer un classeur par valeurs avec les sous-valeurs et sous-sous-valeurs correspondante.

Ex :
Classeur "valeur 1"
Valeur 1 // Sous-Valeur1 / Sous-Sous-Valeur1
Valeur 1 // Sous-Valeur2 / Sous-Sous-Valeur2
Valeur 1 // Sous-Valeur3 / Sous-Sous-Valeur3
Valeur 1 // Sous-Valeur4 / Sous-Sous-Valeur4

Classeur "valeur 2"
Valeur 2 // Sous-Valeur5 / Sous-Sous-Valeur5
Valeur 2 // Sous-Valeur6 / Sous-Sous-Valeur6
Valeur 2 // Sous-Valeur7 / Sous-Sous-Valeur7
Valeur 2 // Sous-Valeur8 / Sous-Sous-Valeur8

...etc

Je ne vois pas trop par où commencer.

Merci de votre aide
--
A voir également:

12 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 nov. 2013 à 19:48
Bonjour,
Je suppose que tu veux dire que, dans ton premier classeur, tu as une feuille avec les données précisées en ton premier point. Une Feuille n'est pas un classeur !

Cet "amalgame" entre le terme "classeur" et "Feuille" induit du coup ,un sacré doute sur ce que tu veux réellement créer ! Sont-ce vraiment des classeurs (et dans un tel cas : sur une feuille nommée comment) ? Sont-ce des Feuilles d'autre classeurs ? Sont-ce d"es feuilles du même classeur ?
La terminologie est, tu le vois, très importante ! Elle est même le début de la réflexion ...
0
aubioine Messages postés 19 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 19 novembre 2013
15 nov. 2013 à 20:41
Effectivement, j'était parti sur une autre idée au début (créer des feuilles au sein d'un même classeur puis enregistrer chaque feuilles).
Mais.....
J'ai bien un classeur avec une seule feuille au début que je souhaite décliner en N classeurs (correspondant aux N valeurs) à enregistrer dans un même répertoire.
Le nombre et le nom des valeurs peut varier
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 nov. 2013 à 20:44
Et ?
Relis-moi, s'il te plait :
"Sont-ce vraiment des classeurs (et dans un tel cas : sur une feuille nommée comment) ? "
on, ne peut saisir que sur une plage d'un objet feuille d'un objet classeur, pas sur "un classeur" !
Je te prie de bien vouloir commencer à être très précis. C'est indispensable.
0
aubioine Messages postés 19 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 19 novembre 2013
15 nov. 2013 à 20:48
dans une feuille d'un classeur (le nom de la feuille n'a pas vraiment d'importance) mais le nom du classeur sera le nom de la valeur.
je me retrouverai donc avec N classeurs comportant chacun une seule feuille
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 nov. 2013 à 21:03
Comment cela, "le nom de la feuille n'a pas d'importance" ? !!!
Il va bien falloir que tu décides de la feuille "réceptrice" !
0
aubioine Messages postés 19 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 19 novembre 2013
15 nov. 2013 à 21:09
les N classeurs porterons le nom des N valeurs mais le nom de la feuille au sein de chaque classeurs n'a pas d'importance, elle peut s'appeler "feuil1" ou porter le nom du classeur ou autres...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 15/11/2013 à 21:24
Bon... on va y aller avec "Feuil1", donc ...
Connais-tu le principe/règlement de ce forum ? Je te le rappelle : ===>>
On n'y traite pas un projet dans son ensemble, mais une seule question, spécifique et parfaitement isolée :
Il va donc falloir, pour cette discussion, que tu choisisses une seule difficulté, que tu ne saurais résoudre, parmi les suivantes :
1) créer un nouveau classeur en lui attribuant un nom
2) y créer une feuille en lui attribuant un nom
3) dans un classeur (celui d'origine) : parcourir en boucle une plage d'une feuille
Que choisis-tu ?
0
aubioine Messages postés 19 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 19 novembre 2013
15 nov. 2013 à 21:30
Ma difficulté est de définir la liste des valeurs (sans doublons) afin d'en créer les classeurs/feuilles.
La création de classeurs/feuilles, l'enregistrement des classeurs/feuilles une fois créée avec des noms définis sont des codes que j'arrive à produire sans trop de difficultés.
Donc option 3 :)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 15/11/2013 à 21:53
Bon :
On suppose que la feuille de ton classeur d'origine est triée (sonon : à trier d'abord) :

Regarde ce que fait ceci :

derlig = Range("A" & Rows.Count).End(xlUp).Row
 Dim toto As Range
 For i = 2 To derlig + 1
   If Range("A" & i - 1).Value = Range("A" & i).Value Then
     Set toto = Union(Range("A" & i - 1 & ":C" & i - 1), Range("A" & i & ":C" & i))
   Else
     MsgBox toto.Address
     Set toto = Range("A" & i & ":C" & i)
     If i > derlig Then Exit For
   End If
 Next

Voilà pour ce qui est de ta difficulté du point 3 !
A toi, maintenant (mais ce n'est plus le point 3 mais une autre question/discussion) de remplacer le msgbox par tes instructions de création de classeur et de copie (à chaque fois) de la plage toto vers la feuille choisie de l'autre classeur (méthode Range.copy avec argument destination).
Voilà ...
0
aubioine Messages postés 19 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 19 novembre 2013
15 nov. 2013 à 21:56
très bien, merci beaucoup pour ta rapidité, j'essaye ça la semaine prochaine (au boulot) et te tiens au courant.
=)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 15/11/2013 à 22:12
Attention !
J'ai écrit à main levée et ai commis une erreur ===>> corrigé ===>>
derlig = Range("A" & Rows.Count).End(xlUp).Row
 Dim toto As Range
 Set toto = Range("A1:C1")
 For i = 2 To derlig + 1
   If Range("A" & i - 1).Value = Range("A" & i).Value Then
     Set toto = Union(toto, Range("A" & i & ":C" & i))
   Else
     MsgBox toto.Address
     Set toto = Range("A" & i & ":C" & i)
     If i > derlig Then Exit For
   End If
 Next
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 16/11/2013 à 08:11
Tiens...
Hier, j'ai écrit à main levée et en ne m'écartant que le moins possible de ce que tu pourrais suivre.
Ce matin, je t'ai écrit une autre manière, beaucoup plus technique (et d'exécution plus rapide), très différente de la première ===>>
Dim deb As Long, i As Long, titi As Range, toto()
 toto = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
 deb = 1
 For i = 2 To UBound(toto)
   If toto(i, 1) <> toto(deb, 1) Or i = UBound(toto) Then
     Set titi = Range("A" & deb & ":C" & i - 1)
     MsgBox "plage " & titi.Address & " à copier dans feuil1 d'un classeur à créer sous le nom " & Range("A" & deb).Text & ".xls"
     deb = i
   End If
 Next


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
aubioine Messages postés 19 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 19 novembre 2013
19 nov. 2013 à 20:57
Parfait, merci ;)
0
Rejoignez-nous