creeongletssdoublon+reportdata

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

happymarmotte

XLDnaute Occasionnel
Bonsoir


J`ai un onglet "Vendeurs"avec des donnees ds colonnes A a E.

Ds colonen B, j`ai un mot et on toruve environ 40 mots differents dscette liste (Col B)
Je cherche a creer une macro qui regarde les noms existants ds colonne B et cree les onglets pour le snoms existants (sans doublon donc)

La j`y suis presque mais ca plante je sais pas pourquoi 🙁

Et ensuite la macro doit reporter les donnees de la feuilel "Vendeurs" ds les onglets cree

Donc si ds la colonne B j`ai "Jena Marie", et bien un onglet Jena Marie se cree tout seul et ensuite partout ou jean marie apparait en Col 2, ben faut reporter la ligne. (Sans efgacer les donnees de la feuille "Vendeurs surtout"

Merci pour les ajustemenst sur le code suivant :Le step 1 plante legerement, et le step 2, rpeort de data sur onglet qui vient de se creer je sais pas faire
Le code : Notez que j`ai une feuille Somme car dessus je vais faire des calculs et j`ai indique un format si besoin a reporter (Mais ca c`est pas important - j`espere)


Sub Vendeurs()
Sheets("Vendeurs").Select
Columns("B:B").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess,
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Dim i As Integer
Dim n
Dim f As Worksheet
i = 2
Set f = Sheets("Vendeurs")
Do While Len(Cells(i, 1).Value) > 0
n = f.Range("B" & i)
Sheets("SOMME").Select
Sheets("SOMME").Copy Before:=Sheets("SOMME")
ActiveSheet.Name = n
f.Select
i = i + 1
Loop
Range("A1").Select
Exit Sub
End Sub




Merci pour votre aide

happymarmotte
 
Re : creeongletssdoublon+reportdata

Bonsoir,

L'écriture de ton code est à revoir car peu orthodoxe.
Maintenant il doit buger lorsque tu lui demandes de renommer une nouvelle feuille du même nom qu'une feuille précédemment construite car tu ne fais aucun test à ce sujet.

Bonne soirée
 
Re : creeongletssdoublon+reportdata

Bonsoir Happy Marmotte, Jacques, bonsoir le forum,

Je te propose le code suivant :

Code:
Sub Vendeurs()
Dim p As Range 'déclare la variable p
Dim cel As Range 'déclare la variable cel
Dim sh As Worksheet 'déclare la variable sh
Dim dest As Range 'déclare la variable dest
 
With Sheets("Vendeurs") 'prend en compte l'onglet "Vendeurs"
    Set p = .Range("B1:B" & .Range("B65536").End(xlUp).Row) 'définit la variable p
 
    For Each cel In p 'boucle sur toutes les cellule de la plage p
 
        For Each sh In Sheets 'boucles sur tous les onglets du classeur
            'condition : si le nom de l'onglet correspond au texte de la cellule, va à la balise suite
            If sh.Name = CStr(cel.Value) Then GoTo suite
        Next sh 'prochain onglet de la boucle
 
        Sheets("SOMME").Copy Before:=Sheets("SOMME") 'copy l'onglet "Somme"
        ActiveSheet.Name = cel.Value 'le renomme avec le nom de la cellule
 
suite: 'balise
    Next cel 'prochaine cellule de la plage p
 
    For Each cel In p 'boucle sur toutes les cellules de la plage P
 
        Set dest = Sheets(cel.Value).Range("A65536").End(xlUp).Offset(1, 0) 'définit la variable dest
        cel.EntireRow.Copy Destination:=dest 'copy et colle la ligne de la cellule
 
    Next cel 'prochaine cellule de lam plage p
 
    .select 'sélectionne l'onglet "Vendeurs"
 
End With 'fin de la prise en compte de longlet "Vendeurs'" 
 
End Sub
 
Dernière édition:
Re : creeongletssdoublon+reportdata

Bonsoir Robert et Jacques87

Ben merci pour le code. C`est vrai que ca ressemble pas trop a ce que j`avais mais j`avais picque ce code sur le site il y a bien longtemps. J`ai ajuste mais j`ai du mal le faire

En tout cas merci Robert car ton code est parfait, ca marche nickel

Bon je m`en vais plier du chocolat

A+

Merci bcp

happymarmotte
 
Re : creeongletssdoublon+reportdata

Re

Juste un complement car mon message est vraiment tres courtn et pas clair "mea culpa"

le report des valeurs ds les onglets crees plante au niveau de la ligne de code suivante :
Set dest = Sheets(cel.Value).Range("A65536").End(xlUp).Offset(1, 0)

Et pourtant ca marchait tres bien hier. Je vois pas le pb.

Hier j`avais mis du texte "Benard ou Paul ds ma col et la il s`agit de valeur
a part ca je vois pas de changement.

Merci pour une aide evenutelle

Happymarmotte
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 îPb code VBA
Réponses
1
Affichages
628
Réponses
3
Affichages
993
Retour