Récupérer donnée avec création feuille automatique

  • Initiateur de la discussion Initiateur de la discussion spwww
  • Date de début Date de début

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 !

spwww

XLDnaute Nouveau
Bonjour à tous!
J'ai un fichier contenant le nom de plusieurs personnes en liste, et des données associées à ces personnes (notes pour la plupart). J'utilise une macro Private Sub Worksheet_BeforeDoubleClick qui me permet à chaque double clic sur le nom d'une personne de créer automatiquement un onglet portant le nom de celle-ci.

Le double clic génère donc la page vierge portant le nom de la personne, je souhaterais savoir si il est possible a chaque double clic d'insérer une page "Type", qui serait la même à chaque double clic mais qui reprendrait le style de la feuille "Type" en récupérant des données inhérantes à l'utilisateur selectionné.

Il faudrait qu'a chaque clic sur une Personne, l'onglet se génère avec la présentation de la feuille Type.

Je poste un fichier joint simplifié avec commentaires pour une meilleur compréhension.

en vous remerciant d'avance en espérant que vous pourrez m'aider à nouveau ^^
 

Pièces jointes

Re : Récupérer donnée avec création feuille automatique

Bonjour spwww,
Le nom de la feuille Type contient des doubles cotes ("). Pas terrible pour VBA.
J'ai renommé cette feuille en "Model"
Une proposition:
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ws As Worksheet
Dim Nom As String
If Target.Column <> 1 Or Target.Value = "" Then Exit Sub
Nom = Target.Value
On Error Resume Next
Set ws = Sheets(Nom)
On Error GoTo 0
If ws Is Nothing Then
    Sheets("Model").Copy After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = Nom
    With Sheets(Nom)
        .Cells(2, 3) = Nom
        .Cells(9, 2) = Target.Offset(0, 1).Value
        .Cells(9, 4) = Target.Offset(0, 2).Value
    End With
Else
    Call MsgBox("La feuille avec ce nom existe déja.", vbCritical, "Impossible de créer une feuille")
    Exit Sub
End If
End Sub
Cordialement
 

Pièces jointes

Dernière édition:
Re : Récupérer donnée avec création feuille automatique

Efgé c'est parfait je vais l'adapter a mon fichier principal dorénavant!

J'ai cependant une question concernant
.Cells(2, 3).FormulaLocal = "=" & F.Name & "!" & Target.Address
.Cells(1, 1).FormulaLocal = "=" & F.Name & "!" & Target.Offset(0, 3).Address
.Cells(9, 4).FormulaLocal = "=" & F.Name & "!" & Target.Offset(0, 2).Address

Est - il possible dans cette série d'importer des documents d'une autre feuille que celle du Target?

Merci pour ta réponse rapide et efficace! Passe une bonne journée!
 
Dernière édition:
Re : Récupérer donnée avec création feuille automatique

Bonjour spwww, le fil, le forum
Je ne comprend pas bien la question.
Si il s'agit de remplacer Feuil1 par une autre feuille, la réponse est oui.
Si il s'agit d'importer des valeurs de cellules d'une autre feuille la réponse est oui aussi...
Si tu peux être plus précis (avec un petit fichier exemple à l'appuis).
A te re lire
Cordialement
 
Re : Récupérer donnée avec création feuille automatique

Bonjour Efgé,
En effet il s'agit d'importer des données des cellules d'une autre feuille.
j'ai refait un fichier exemple, je l'ai modifié et annoté pour une meilleure compréhension.
Il a y juste des données à rappatrier d'une troisième feuille qui récapitule les caractéristiques de chaque utilisateur.

Je te joint le fichier (à noter que j'ai enlevé le Beforedoubleclick vu que j'ai modifié l'interface de la feuil Model pour ne pas avoir d'erreur)

En te remerciant d'avance Efgé
 

Pièces jointes

Re : Récupérer donnée avec création feuille automatique

Re
Voila comment je vois les choses:
Sur la feuille "Rapport", une plage nommée dynamique "Test". Sous 2003 insertion / Nom / Définir.
VB:
=DECALER(Rapport!$A$1;;;NBVAL(Rapport!$A:$A);NBVAL(Rapport!$1:$1))
Directement sur la feuille "Model", une formule:
VB:
=RECHERCHEV($H$2;Test;4;0)
Il ne reste plus qu'a inscrire à la création de la feuille le nom en H2.
Je préfère cacher la feuille "Model" pour éviter des manipulations hasardeuses des utilisateurs...
Cordialement
 

Pièces jointes

Re : Récupérer donnée avec création feuille automatique

Efgé si tu est encore dans le secteur j'aurais une dernière petite question ! 😛
mon fichier évolue et j'ai besoin d'une plage plus importante sur la fiche Rapport.
J'ajoute donc les colonnes et je modifier la plage Test dans Gestionnaire de Nom et tentant d'ajouter 3 colonnes supplémentaires.

(actuellement le code fonctionne jusque =RECHERCHEV($H$2;Test;11;0), ($H$2;Test;12;0) par exemple renvoi la valeur #REF, ce qui est normal car 12 n'est pas compris dans la plage Test.

Cependant je n'arrive pas à modifier correctement la formule de la plage, à quelle partie de la formule dois-je m'attaquer?

=DECALER(Rapport!$A$1;;;NBVAL(Rapport!$A:$A);NBVAL(Rapport!$1:$1))

au plaisir
 
Re : Récupérer donnée avec création feuille automatique

Re
La plage se calcule seule si :
Toutes les cellules de la colonne A sont remplies, sans cellules vides (je pense que c'est le cas puisque c'est la colonne des noms).
VB:
NBVAL(Rapport!$A:$A)
Toutes les collonnes ont un en-tête sur la première ligne
VB:
NBVAL (Rapport!$1:$1)
Si ce n'est pas ça remet un exemple qui ne fonctionne pas...
Cordialement

PS toujours en xls, je suis sous 2003
 
Re : Récupérer donnée avec création feuille automatique

Re
La plage se calcule seule si :
Toutes les cellules de la colonne A sont remplies, sans cellules vides

Le problème venait de là en effet une cellule était vide sur la nouvelle plage
je viens de remplir la dite cellule et tout le reste fonctionne

Merci Efgé je comprends bien mieu comment cela fonctionne
passe une bonne journée !
 
- 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

Réponses
4
Affichages
243
Réponses
4
Affichages
106
Réponses
5
Affichages
120
Réponses
11
Affichages
199
Retour