Application

T

Tony

Guest
Salut


Dans cette application, je souhaiterais que lorsque l'utilisateur clic sur le bouton 'Enregistrer' (Dessin), la base de données (Liste) soit renseigner et que la fiche soit Enregistrée dans le classeur.
Cette fiche doit être rappeler au besoin pour Imprésion.
Elle ne doit pas être visible pour l'utilisateur.

J'ai récupérer un code d'une autre appli, (pas faite par moi )
que j'ai un peu modifier,que je souhaiterai insérer dans la macro Auto_Open, dite moi si elle est valable ou non
Code:
Remplacement feuille 'Fiche-individuelle' pat feuille vierge.
Sheets('Fiche_individuelle').Select
ActiveWindow.SelectedSheets.Delete
Sheets('Fiche_vierge').Select
Sheets('Fiche_vierge').Copy before:=Sheets(10)
Sheets('Fiche_vierge(2)').Select
Sheets('Fiche_vierge(2)').Name = 'Fiche_individuelle'
Range('a1').Select

'recupération du nombre de lignes dans la base de données.
Sheets('Liste').Select
Range('A1').FormulaR1C1 = 0
Selection.ClearContents
liste = ''
Application.ScreenUpdating = False
Range('A1').Select



Merci
@ +
Tony [file name=Classeur1_20051202151806.zip size=46931]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20051202151806.zip[/file]
 

Pièces jointes

  • Classeur1_20051202151806.zip
    45.8 KB · Affichages: 28
T

Tony

Guest
Bonjour

Dans cette application, je souhaiterais que lorsque l'utilisateur clic sur le bouton \\'Enregistrer\\'
(Dessin), la base de données (Liste) soit renseigner, que la fiche soit Enregistrée dans leclasseur.

Cette fiche doit être rappeler au besoin pour Imprésion.
Elle ne doit pas être visible pour l'utilisateur.

La suite ne fais pas partie de cette question, je pense :unsure:

Merci de bien vouloir prendre le temps de me lire

@ +

Tony

Je souhaite une aide Pour apprendre
 

Dan

XLDnaute Barbatruc
Bonjour Tony,

Je viens de reprendre ton fichier et vois qu'il y a pas mal de changement à faire là dedans. Mais avant de continuer je dois t'informer de ce qui suit :

1. Dans un module, tu as une macro Autoclose et une macro Beforeclose dans Thisworbook. C'est déjà quelque chose à changer. Ce que tu dois savoir c'est que les macros AuoOpen et Autoclose ne doivent plus être utilisées (Merci à _Thierry qui m'a informé de cela dans l'ancien forum en 2003). Remplace ces deux macros par ceci :

- A l'ouverture du classeur :
Private Sub Workbook_Open()
End Sub

- A la fermeture du classeur :
Private Sub workbook_beforeclose(cancel As Boolean)
End Sub

2. D'autre part, en utilisant ce genre de macros, tu obliges l'utilisateur à accepter des actions à l'ouverture ou fermeture du classeur qu'il ne souhaite peut être pas et qui peuvent changer son environnement Excel. Perte de barres de menu, d'outils, etc,... Donc le mieux à faire est de toujours prévenir l'utilisateur si tu change quelque chose. Dans ton cas, tu supprimes 4 barres d'outils dont 3 sont seulement remises à la fermeture du classeur (la barre de dessin a disparue). Là pas trop de pb mais c'est mieux d'utiliser la fonction 'Plein écran' Voici un des nombreux fil qui traitent des pb que l'on peut avoir en utilisant ces macros.
- Lien supprimé.

Essaie donc si tu places des macros à l'ouverture de placer une instruction simple qui fait appel une macro placée dans un module.

Exemple :
- Dans Thisworbook
Private Sub Workbook_Open()
Call menu
End Sub
- Dans un module
Sub menu()
Application.DisplayFullScreen = True
...tes instructions à l'ouverture.
End sub

Bon je vais regarder ta demande plus précisément et te donne des infos plus tard dans la journée.

:)
 
T

Tony

Guest
Bonjour Dan

Je voie que tu t'intéresses à mon problème

J'ai suivi tes conseils, parcontre j'ai remis False dans Sub Workbook_beforeClose(), car en faite les utilisateurs n'ont pas à d'utiliser ses fonction (inutiles dans l'application).

Jattends avec plaisir les infos qui peuvent me faire progrésser dans Excel
je suis débutant et tout ce que je sait (pas beaucoups) est grace au Forums et à la lecture

@ +
Tony
 

Dan

XLDnaute Barbatruc
Bonsoir,

J'ai avancé sur ton fichier mais ai besoin d'infos complémentaires.

1. Quelle est la fiche que tu complètes avant de placer les données dans la feuille LISTE. La feuille FICHE INDIVIDUELLE ou la feuille FICHE VIERGE. J'ai supposé la feuille INDIVIDUELLE

2. Lorsque tu parles de sauver la fichie dans le classeur c'est quelle feuille et sous quel nom ?

3. comment penses-tu rappeler la fiche pour impression. En activant l'onglet sauvegardé ?

Merci de tes explications.

;)
 
T

Tony 21

Guest
Bonjour Dan

Je vois que tu te couche de bonne heure (le matin ;) )

Pour répondre à tes questions:

1; c'est bien la Fiche_individuelle.

2; c'est aussi la fiche individuelle, peut-être sous le nom de la personne???? (Je pense).

3; je souhaiterais rappeler une fiche individuelle en cliquant dans une liste déroulante (à créer) qui se renseignerait au fur et à mesur de la sauvegarde, et située après : Choisir un arbitre.
Cette liste déroulante afficherait le nom et prénom de la personne.

J'ai modifier la page d'accueil en incluant 'Cliquez sur le bloc-note'

Voilà j'espère avoir été clair dans mes explications :S
Prends ton temps je serai absent pour la journée.

Je signerai maintenant Tony 21 (Cause un autre Tony) ou comment modifier mon speudo ????

@ + Tony 21
 
T

Tony 21

Guest
Re

J'ai oublier de te dire:

La fiche vierge sert à ajouter un arbitre en cliquant sur le bouton (dessin) 'Ajouter un arbitre'.
elle sera invisible à l'utilisateur.
Mais peut-être supprimer si elle n'est pas utile (A voir).

@ +
Tony 21
 

Dan

XLDnaute Barbatruc
Bonsoir,

Revoici ton fichier modifié.

1. les macros à l'ouverture sont modifiées comme je te l'avais suggéré dans mon précédent post.
2. Feuille FICHE VIERGE : après avoir complété les données, il te suffit de cliquer sur l'icône bleue à gauche pour que la feuille LISTE enregistre les données. C'est la macro LISTE qui exécute cela. Il te reste à ajouter les instructions après '.Cells(ligne, 8) = Range('H16')' pour que toutes les données soient reprises.
NB : Cells(ligne,8) avec 8 étant le numéro de colonne à récupérer.
Merci à Hervé au passage qui m'a dépanné hier soir à ce sujet

3. Feuille FICHE INDIVIDUELLE : En E10, il y a une liste déroulante qui te permet de sélectionner un nom de la feuille LISTE et de récupérer toutes les données de la feuille LISTE qui y correspondent.
Il te reste à compléter les rubriques à partir de la ligne 20 en utilisant cette formule : =SI(ESTVIDE($E$10);'';RECHERCHEV($E$10;DataListe;N° de colobnne;0))
Cela te permet d'imprimer une feuille avec les données de chaque arbitre

Bonne lecture et bonjour à la Bourgogne, région que je connais bien…le 21 c'est cela non

;) [file name=Tony_Application_v02.zip size=41693]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Tony_Application_v02.zip[/file]

Message édité par: Dan, à: 04/12/2005 22:35
 

Pièces jointes

  • Tony_Application_v02.zip
    40.7 KB · Affichages: 24
T

Tony 21

Guest
Bonjour

J'ai apporter les modifs nécessaires.
1; Le problème de la fiche vierge et de la fiche individuelle est que les onglet seront invisibles à l'utilisateur.

2; peut-on cacher la feuille 'liste' à l'utilisateur et ne la rendre visible que lorsque les macros ne sont pas activées.

Merci

Et merci à Hervé aussi que j'avais oublier lors du dernier post

@ +

Tony 21
 

Dan

XLDnaute Barbatruc
Bonsoir,

Alors pas mal ton pays là que je ne connaissais pas. A visiter il me semble.

Pour ce qui est ta question, place cette instruction dans la macro MENU par exemple :
Code:
Sheets('Liste').Visible = FALSE

Pour afficher la feuille la valeur TRUE passe à TRUE.

Autre chose que tu peux aussi faire pour accélérer le code, c'est mettre ces instructions :
Au début de chaque macro :
Code:
Application.ScreenUpdating = False
A la fin de chaque macro
Code:
Application.ScreenUpdating = True

Cela est fait partiellement mais à vrai dire je n'ai pas complété cela dans ma précédente proposition.

Si pb n'hésite pas

;)
 
T

Tony 21

Guest
Bonjour Dan

J'ai suivi tes instructions, mais dans la macro 'Liste' un bog apparaît avec un message :

Erreur '1004'
Erreur définie par l'application ou par l'objet


Le code Sheets('Liste').Visible = False, fonctionne bien.

A par ça, je ne comprend pas ou est enregistrée la fiche individuelle, dans le classeur ou ailleurs???????


Code:
Sub Liste()
'
' Renseigne la base de données
' Macro enregistrée le 04/02/2005 par
    Application.ScreenUpdating = False
    With Sheets('liste')
 lignre = .Range('A65536').End(xlUp).Row + 1
        .Cells(ligne, 1) = Range('E10')
        .Cells(ligne, 2) = Range('O12')
        .Cells(ligne, 3) = Range('E30')
        .Cells(ligne, 4) = Range('H12')
        .Cells(ligne, 5) = Range('D14')
        .Cells(ligne, 6) = Range('Q14')
        .sells(ligne, 7) = Range('C16')
        .Cells(ligne, 8) = Range('H16')
        .Cells(ligne, 9) = Range('H20')
        .Cells(ligne, 10) = Range('J20')
        .Cells(ligne, 11) = Range('Q20')
        .Cells(ligne, 12) = Range('G23')
        .Cells(ligne, 13) = Range('O23')
        .Cells(ligne, 14) = Range('H26')
        .Cells(ligne, 15) = Range('L30')
        .Cells(ligne, 16) = Range('S30')
        .Cells(ligne, 17) = Range('J33')
        .Cells(ligne, 18) = Range('S33')
        .Cells(ligne, 19) = Range('C39')
    Sheets('liste').Select
    ActiveWorkbook.Add Name:='dataliste', RefersToR1C1:=ActiveSheet.UsedRange
    End With
    With ActiveWindow
        .DisplayGridlines = True
        .DisplayHeadings = True
        .DisplayHorizontalScrollBar = True
        .DisplayVerticalScrollBar = True
    End With
    Application.ScreenUpdating = True
End Sub

@ +
Tony 21
 
T

Tony 21

Guest
Re

Ne cherche plus j'ai touver.

C'est de ma faute, tant que je ne suivrais pas mon travail je ne suis pas pret d'avancer :angry: :angry: :angry:

Si non dit moi si la macro và ou pas.

j'ai un problème pour remettre le cadrillage, en-tête de ligne et de collone, et les barres de défilement H et V.

Merci pour tes conseils

@ +

Tony 21

PS: J'ai une application qui me sert modèle mais je ne peut pas le mettre sur le forum, trop gros, même conprécer.
Si je pouvait te le faire passer en direct, merci.
 

Dan

XLDnaute Barbatruc
Bonjour Tony,

Pour répondre à ta demande :

1.
A par ça, je ne comprend pas ou est enregistrée la fiche individuelle, dans le classeur ou
ailleurs???????
La feuille individuelle n'est pas enregistrée dans ton classeur. Cette feuille te permet de rappeler les informations de la feuille LISTE et ce en choisissant un nom dans la liste déroulante placée en E10. Cela te permet d'imprimer la fiche de l'arbitre comme tu l'avais demandé.

2.
j'ai un problème pour remettre le quadrillage, en-tête de ligne et de colonne, et les barres de
défilement H et V.

Je ne sais pas de quelle feuille tu parles mais dans la macro FERME, rajoute ces instructions après '.DisplayWorkbookTabs = True'
Code:
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True

;)

Message édité par: Dan, à: 06/12/2005 12:47
 

Discussions similaires

Réponses
2
Affichages
743

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet