Cellule = onglet

Résolu
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   -  
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Dans l'exemple ci-dessous j'ai en colonne A des noms je souhaiterais avoir un code qui lorsque
j'ajoute un nom ,m'active une nouvelle feuille et que l'onglet de cette feuille ainsi que la cellule A1
portent le nom que je viens d'ajouter.
https://www.cjoint.com/c/JClpUu2OPPf
Merci pour votre aide
Cordialement



Configuration: Windows / Firefox 73.0

4 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
bonjour,

a mettre dans le module de la feuille1. Se déclenche au double clic dans la colonne A (nom prenom)

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Integer
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
If Target.Value = "" Then Exit Sub
Sheets.Add After:=Sheets(Sheets.Count)
' renomme cette feuille avec le nom
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = Target.Value
' boucle sur les colonnes 1 a 5 de feuil1
    For c = 1 To 5 ' REMPLACER le 5 par le n° de la dernière colonne
    ' place en ligne 1 de la nouvelle feuille les titres
    Sheets(Sheets.Count).Cells(1, c) = Sheets("Feuil1").Cells(1, c)
      ' place en ligne 2 de la nouvelle feuille l'information de Feuil1
    Sheets(Sheets.Count).Cells(2, c) = Sheets("Feuil1").Cells(Target.Row, c)
    Next
 ' Repositionnement sur Feuil 1
Sheets("Feuil1").Select
End If
End Sub

1
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   463
 
Bonjour
Merci pour ta solution qui va en partie.
Ce que j'aurais souhaité c'est d'avoir sur la ligne1 uniquement en cellule A1 le nom et prénom ,le reste à partir de la
ligne 2.
Est-ce possible?
Cordialement
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention  
 
comme ceci:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Integer
Dim Ws As Worksheet
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
If Target.Value = "" Then Exit Sub
'Boucle sur les feuilles du classeur.
    For Each Ws In ThisWorkbook.Worksheets
     If Ws.Name = Target.Value Then  'même nom
     MsgBox "Une feuille existe dèjà à ce nom!", vbExclamation, "Ajout feuille"
 Exit Sub
     End If
    Next Ws
Sheets.Add After:=Sheets(Sheets.Count)
' renomme cette feuille avec le nom
Sheets(Sheets.Count).Name = Target.Value
Sheets(Sheets.Count).Range("A1").Value = Target.Value
' boucle sur les colonnes 1 a 5 de feuil1
    For c = 1 To 5 ' REMPLACER le 5 par le n° de la dernière colonne
    ' place en ligne 1 de la nouvelle feuille les titres
   ' Sheets(Sheets.Count).Cells(1, c) = Sheets("Feuil1").Cells(1, c)
      ' place en ligne 2 de la nouvelle feuille l'infomation de Feuil1
    Sheets(Sheets.Count).Cells(2, c + 1) = Sheets("Feuil1").Cells(Target.Row, c + 1)
    Next
 ' Repositionnement sur Feuil 1
Sheets("Feuil1").Select
End If
End Sub


Voilà

@+ Le Pivert
0
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   463 > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
Re bonjour
On y est presque voir le fichier ci-dessous il y a les explications sur 2 feuilles
Il faudrait que dans la feuille créée figure tout ce qui se trouve en colonne B C D E
https://www.cjoint.com/c/JCmkZYNxcCf
Crdlt
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention  
 
Avec les commentaires, c'est facilement adaptable!

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Integer
Dim Ws As Worksheet
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
If Target.Value = "" Then Exit Sub
'Boucle sur les feuilles du classeur.
    For Each Ws In ThisWorkbook.Worksheets
     If Ws.Name = Target.Value Then  'même nom
     MsgBox "Une feuille existe dèjà à ce nom!", vbExclamation, "Ajout feuille"
 Exit Sub
     End If
    Next Ws
Sheets.Add After:=Sheets(Sheets.Count)
' renomme cette feuille avec le nom
Sheets(Sheets.Count).Name = Target.Value
Sheets(Sheets.Count).Range("A1").Value = Target.Value
' boucle sur les colonnes 2 a 5 de feuil1
    For c = 2 To 5 ' REMPLACER le 5 par le n° de la dernière colonne
    ' place en ligne 2 de la nouvelle feuille les titres
    Sheets(Sheets.Count).Cells(2, c) = Sheets("Feuil1").Cells(1, c)
      ' place en ligne 3 de la nouvelle feuille l'infomation de Feuil1
    Sheets(Sheets.Count).Cells(3, c) = Sheets("Feuil1").Cells(Target.Row, c)
Next
 ' Repositionnement sur Feuil 1
Sheets("Feuil1").Select
End If
End Sub


@+ Le Pivert
0
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   463 > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
Un nouvelle exemple du fichier final
https://www.cjoint.com/c/JCmmLPPujmf
Crdlt
0
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   463
 
Bonjour
Merci pour ton aide
Exactement ce que je voulais .
Par contre est-il possible que dans les nouvelles feuilles le tableau soit de la même dimension
que le modèle?
Cordialement
0
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   463
 
Re
Je viens de constater que les copies de la feuille Modèle ne reprennent pas les formules qu'il y a dedans.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

les formules qu'il y a dedans.
Ok, je vais modifier aussi pour avoir le meme tableau (taille)

suite:
fichier modifie:
https://mon-partage.fr/f/f6NBEfsg/
0
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   463 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir

Merci pour ton aide tout fonctionne nickel.
Bon WE
Cordialement
0
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   463
 
Bonjour
Tout fonctionne mais l'histoire du Double Click pas très pratique.
Est-il possible de modifier en tapant uniquement sur Enter quand un nouveau nom est inséré?
Cordialement

0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Double Click:
C'est ce que je vous ai ecrit post 11.
Je vous arrange ca
0
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   463 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour

Ok merci
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention  
 
Re,
Par contre, demande un peu de reflexion car si creation des l'ajout d'un nom sans les autres infos, ca va pas le faire

Question: si vous entrez tous vos participants et seulement a la fin click sur un bouton pour créer tous les onglets, Ok ou pas
0
JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention   463 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Si plus facile avec un bouton Ok pas de problème
Mais en cas d'oubli d'un nom après avoir cliqué sur le bouton pourra-t-on ajouter ce nom et créer son onglet?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > JCB40 Messages postés 3012 Date d'inscription   Statut Membre Dernière intervention  
 
Re,
Mais en cas d'oubli d'un nom
Oui, puisqu'il y a test si nom onglet déjà exitant
0