Données page 1 classées sur différentes feuilles

Résolu/Fermé
PBCSC Messages postés 11 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 18 octobre 2023 - Modifié le 21 sept. 2018 à 16:53
PBCSC Messages postés 11 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 18 octobre 2023 - 21 sept. 2018 à 17:54
Bonjour,

Je cherche une façon d'ajouter et de classer automatiquement les données de ma feuille "liste" sur la bonne page et idéalement de créer une nouvelle feuille automatiquement si un nouveau numéro apparait dans la colonne "client"


https://www.cjoint.com/c/HIvo0YxkXRE

3 réponses

via55 Messages postés 14512 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 janvier 2025 2 740
21 sept. 2018 à 16:31
Bonjour

On peut le faire par une macro déclenchée à chaque nouvelle entrée dans al colonne C de Liste
Pour établir la macro il faut un exemple de ton fichier (et pas une image) à poster sur cjoint.com, faire créer un lien , le copier et revenir le coller ici

Cdlmnt
Via
0
PBCSC Messages postés 11 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 18 octobre 2023
21 sept. 2018 à 16:54
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
21 sept. 2018 à 16:43
Bonjour,


en vba se declenche au double clic dans la dernière cellule saisie colonne A

Se mettre sur la feuille concernée faire Alt f11 pour accéder à l'éditeur et coller ce code:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then 'adapter la colonne
If Target.Value = "" Then Exit Sub
Sheets.Add After:=Worksheets(Worksheets.Count) 'ajoute une feuille à la suite
ActiveSheet.Name = Target.Value 'renomme cette feuille
End If
End Sub



voilà le plus simple


0
PBCSC Messages postés 11 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 18 octobre 2023
21 sept. 2018 à 17:21
Fonctionne très bien mais renvoi un message d'erreur si la page existe déjà
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
21 sept. 2018 à 17:26
Maintenant que j'ai vu le classeur, c'est mieux comme cela:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim derniereLigne As Long
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then 'adapter la colonne
If Target.Value = "" Then Exit Sub
If IsWorksheet(Target.Value) = True Then
derniereLigne = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("A" & derniereLigne + 1).Value = Sheets("Liste").Cells(Target.Row, Target.Column + 1)
ActiveSheet.Range("B" & derniereLigne + 1).Value = Sheets("Liste").Cells(Target.Row, Target.Column + 2)
Else
Sheets.Add After:=Worksheets(Worksheets.Count) 'ajoute une feuille à la suite
ActiveSheet.Name = Target.Value 'renomme cette feuille
ActiveSheet.Range("A1").Value = "Code"
ActiveSheet.Range("B1").Value = "Description"
ActiveSheet.Range("A2").Value = Sheets("Liste").Cells(Target.Row, Target.Column + 1)
ActiveSheet.Range("B2").Value = Sheets("Liste").Cells(Target.Row, Target.Column + 2)
End If
End If
End Sub
Public Function IsWorksheet(strName As String) As Boolean
   Dim objWorksheet As Worksheet
   IsWorksheet = False
   For Each objWorksheet In ActiveWorkbook.Worksheets
      If objWorksheet.Name = strName Then
         IsWorksheet = True
         Sheets(strName).Select
      End If
   Next
End Function



@+
0
PBCSC Messages postés 11 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 18 octobre 2023
21 sept. 2018 à 17:54
Je... je... WOW! Merci !!!!! :)
0
PBCSC Messages postés 11 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 18 octobre 2023
21 sept. 2018 à 16:53
0