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

Résolu
PBCSC Messages postés 12 Statut Membre -  
PBCSC Messages postés 12 Statut Membre -
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

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. PBCSC Messages postés 12 Statut Membre
       
      Fonctionne très bien mais renvoi un message d'erreur si la page existe déjà
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
    3. PBCSC Messages postés 12 Statut Membre
       
      Je... je... WOW! Merci !!!!! :)
      0