créer bouton de commande

bahnini mohamed

XLDnaute Occasionnel
salut les amis
j'ai une fichier qui comporte deux feuille
dans la deuxième feuille un tableau qui rassemble les information des élevé et la première feuille et un modelé de certification
je veut créer un bouton de commande dans la deuxième feuille de tels maniéré que si je choisi le nom d'un élevé et je clic sur le bouton excel me donne la première feuille rempli des donnée de cette élevé pour l'imprimer
après avoir entrer le N° de certification
merci pour votre coopération
je m'excuse pour ma langue française
 

Pièces jointes

  • certificat.xlsx
    14.8 KB · Affichages: 49

Annette

XLDnaute Occasionnel
Re : créer bouton de commande

Bonjour bahnini mohamed, bonjour le forum,

Ci-dessous une solution sans macros. Idéalement les données seraient à réorganiser (Noms et prénoms en colonne A... et les données colonnes qui suivent l'ordre des demandes de l'onglet certificat. Mais ça marche comme ça :).

Cordialement
 

Pièces jointes

  • certificat1.xlsx
    15.3 KB · Affichages: 58
  • certificat1.xlsx
    15.3 KB · Affichages: 70
  • certificat1.xlsx
    15.3 KB · Affichages: 55

Staple1600

XLDnaute Barbatruc
Re : créer bouton de commande

Bonjour à tous

bahnini mohamed
La Bretagne salut le Maroc ;)

Ne connaissant pas ton niveau de maitrise de VBA, je te propose une solution par formule
1) J'ai modifié ton tableau en mettant la colonne nom et prenom en premier (en colonne A)
Ensuite j'ai sélectionné les cellules A2:A19 et j'ai nommé ces cellules DATAS
Voir ci-dessous comment nommer des cellules
Définir et utiliser des noms dans les formules - Excel
2) Sur la feuille certificat, j'utilise une formule de ce type
Exemple ci-dessous (formule inscrite dans la cellule: M19)
=RECHERCHEV(O17;DATAS;7;0)
Il suffit ensuite de mettre cette même formule dans les autres cellules en prenant soin de changer le chiffre en rouge par le chiffre correspondant au numéro de colonne où se trouve la valeur recherchée.

Je te laisse essayer sur ton PC.

EDITION: Bonjour Annette
Je vois qu'on est parti sur la même idée ;)
Mais tu es plus efficace que moi , car en plus de l'idée il y a la mise en pratique dans une PJ.
(le privilège de la jeunesse ou une marque de café plus efficiente que le mien ;))
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : créer bouton de commande

Bonjour Staple , Annette , Bahnini

Allez , j'étais sur une solution VBA,

Juste équipé ta feuille certificat d'une liste déroulante et d'un bout de code pour te faire la démo sur une des donnée .

Donc en fonction du nom et prénom , je compléte la date de naissance , trés facile ensuite de faire de même pour les autres données ....
 

Pièces jointes

  • certificat.xlsm
    24.2 KB · Affichages: 54

bahnini mohamed

XLDnaute Occasionnel
Re : créer bouton de commande

merci Annette pour cette idée mais lorsque je fait la recherche d'un élevé dans le tableau on peut avoir deux ou plus des elevse qui ont le même nom donc le bouton de commande et très efficace par apport a cette méthode
mais si je ne trouve pas de solution je prend cette idée on considération
merci de me donne comment tu a fait pour cette macro
 

Annette

XLDnaute Occasionnel
Re : créer bouton de commande

Bonjour Staple1600, bonjour camarchepas,

Bahnini mohamed,
Ma solution proposée est à peine différente de celle de Staple1600 (il est mieux ordonné :)) et ce sont des solutions sans macros (formules) dans cellules cibles. Pour les macros, camarchepas vous a proposé une solution...
En ce qui concerne les doublons, beaucoup de personnes ont le même nom et prénom ?
Si oui, solution à creuser...

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : créer bouton de commande

Re


camarchepas (mon tout aussi infortunée camarade de code dans le fil ;) )
Tu peux tester ce code, stp ?
Parce que sur mon Excel 2013, ca bogue ou cela y ressemble :confused:
(j'ai le fameux message Exécution interrompue )
Code:
Sub a()
Dim vARR, t, i&, j&
t = Split("O17 M19 P19 O21 L23 O23 N25 P27")
vARR = Sheets("donnee").Range("A2:H19").Value
For i = LBound(vARR, 1) To UBound(vARR, 1)
    For j = LBound(vARR, 2) To UBound(vARR, 2)
    Sheets("certificat").Activate
    Sheets("certificat").Range(t(j - 1)).Value = vARR(i, j)
    Sheets("certificat").PrintPreview
    Next
Next
End Sub
PS: Annette, tu peux tester aussi si tu le souhaites (chuis pour la parité ;))
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : créer bouton de commande

Suite...


La même boucle, mais sans le PrintPreview ne pose pas de problème à VBE ???
Code:
Sub b()
Dim vARR, t, test$, i&, j&
t = Split("O17 M19 P19 O21 L23 O23 N25 P27")
vARR = Sheets("donnee").Range("A2:H19").Value
For i = LBound(vARR, 1) To UBound(vARR, 1)
    For j = LBound(vARR, 2) To UBound(vARR, 2)
    test = test & Sheets("certificat").Range(t(j - 1)).Address(0, 0) & "#" & vARR(i, j) & Chr(13)
    Next
Next
MsgBox Mid(test, 1, 326), vbExclamation, "Et pourtant elle tourne ;-)"
End Sub

Quelqu'un voit-il un explication à la chose :confused:
 

camarchepas

XLDnaute Barbatruc
Re : créer bouton de commande

Re à tous

Staple , j'ai fais l'essai ,
et je dois dire que c'est simplement génial ,

j'ai juste sortie le preview de la boucle pour avoir le résultat final simplement .

voici donc le code trés légérement modifié , mais qui reste le résultat des réflexions de Staple :

Code:
Sub a()
Dim vARR, t, i&, j&
t = Split("O17 M19 P19 O21 L23 O23 N25 P27")
vARR = Sheets("donnee").Range("A2:H19").Value
with  Sheets("certificat")
 For i = LBound(vARR, 1) To UBound(vARR, 1)
    For j = LBound(vARR, 2) To UBound(vARR, 2)
      .Activate
      .Range(t(j - 1)).Value = vARR(i, j)
    Next J
 Next i
 .PrintPreview
end with
End Sub
 

Annette

XLDnaute Occasionnel
Re : créer bouton de commande

Staple1600,

La macro A fonctionne chez moi mais ne renvoie que des erreurs (#NA) et m'affiche l'aperçu avant impression avec difficultés pour en sortir :confused:.
En d'autres termes, je crois qu'il y a une erreur quelque part :).
La macro B ne m'affiche qu'un message ... avec références * 4 décalées.
Voila tout ce je peux en dire ;).

Edition: Camarchepas, votre macro fait "s'animer":confused: les cellules en recherche de données pour fixer des données mais à priori pas les bonnes (ex: chez moi nom et prenom = 4)
Essais effectués sur le classeur original

Cordialement
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : créer bouton de commande

Re

Merci camarchepas
J'ai testé ton code et j'ai le même message d'erreur
(Je sais comment y remédier : fermeture Exel + session Windows , Nettoyage %temp%, réouverture de session
jusquà réapparition de cette bizarrerie qui se produit aléatoirement depuis que je suis passé sur Excel 2013)

PS: J'ai mis le PrintPreview à cet endroit dans le code VBA, pour avoir un certificat par enregistrement (une ligne = un certificat)
Avec ton code, on a uniquement le dernier enregistrement dans le PrintPreview

Annette
: Désolé , j'ai oublié de préciser que j'avais réagencé le tableau sur la feuille donnee selon cet ordre
nom et prenom
date de naissancelieu de naissance
immatriculation annee scolaireclassedate de sortieobservation

Avec cet agencement la macro a fonctionne et remplit les cellules de la feuille certificat avec les bonnes valeurs
(le PrintPreview est juste là pour éviter de vraiment imprimer les certificats ;))
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : créer bouton de commande

@ Staple ,

Ok , mais la demande était sur choix d'un nom prénom, pas de l'intégralité de la liste , bon qui peut le plus peut le moins .

Annette sous 2007 , cela à l'air de fonctionner encore moins bien , bisard de chez bisard .

XL 2013 , est-ce vraiment une avancée ? , ..... ( A voir )
 

Staple1600

XLDnaute Barbatruc
Re : créer bouton de commande

Re

camarchepas
je veut créer un bouton de commande dans la deuxième feuille de tels maniéré que si je choisi le nom d'un élevé et je clic sur le bouton excel me donne la première feuille rempli des donnée de cette élevé pour l'imprimer
C'est pour cela que j'étais d'abord parti sur un simple RECHERCHEV (comme Annette)
(auquel on pourrait d'ailleurs associée une Données/Validation sur la liste des noms/prénoms)
Mais par ta faute, je me pris à mettre le pied dans l'étrier de VBA ;) et ensuite il était trop tard pour faire marche arrière ;)

XL 2013 , est-ce vraiment une avancée ? , ..... ( A voir )
[opinion de moi]
L'avancée c'est là qu'elle se trouve (dans ces 3 lettres)
Or Excel n'a jamais été là ;)
Mais ceci est une autre histoire...
[/opinion de moi]


mohammed

Pas de souci dès lors que nous ne sommes plus transparents ;)
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
962

Statistiques des forums

Discussions
312 347
Messages
2 087 500
Membres
103 563
dernier inscrit
samyezzehar