arthur0201
Messages postés55Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention19 octobre 2006
-
22 sept. 2006 à 15:49
arthur0201
Messages postés55Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention19 octobre 2006
-
26 sept. 2006 à 19:45
Bonjour tous le monde,
Voilà je n'y connais pas grand chose à part mes souvenirs de l'école... J'ai créer un fichier excel pour suivre le travail de différents salarié sur plusieurs chantier, afin de connaitre les cout et temps passé...
Mais pour que mon fichier soit pluspratique j'aimerais créer une sorte de menu dès l'ouverture du fichier...(je me rappel l'avoir fait en cours mais c loin!).
Dans ce menu je voudrais qu'il y ai plusieurs boutons qui lorsque je clique dessus agissent de la facon suivantes:
-Un bouton intitulé saisie des temps, qui me renvoiye à ma feuille de saisie correspondante;
-Un bouton intitulé chantier n° , qui lorsqu'on lui indique le n° additionne le nombre d'heures passé pour le chantier correspondant....
Voilà si j'arrive à faire celà pour lundi matin je pourrais espérer une augmentation!
Merci par avance pour votre aide... En attendant je vais continuer à chercher sur le site pour essayer d'y voir un peu plus clair dans l'utilisation de VB.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 23 sept. 2006 à 23:47
"J'aurai également voulu savoir s'il n'étais pas possible de faire disparaitre le userform une fois qu'on a cliqué sur un bouton?"
>> dans l'évènement Click de ton bouton, place la ligne de code suivante :
Unload Me
"Mais plus important si vous pouviez répondre à la 2 ieme question initial de mon projet, c'est a dire:"-Un bouton intitulé chantier n° , qui lorsqu'on lui indique le n° additionne le nombre d'heures passé pour le chantier correspondant....""
>> ce sera lié à la troisième demande
"Sinon puis faire de la saisie via l'userform et qui s'insererai en meme temps dans mon fichier excel?(sorte de champs ou on pourrais saisir le nombre d'heure passé, le code du chantier et le code du salarié)?"
>> Pour cela, il faut placer un textbox sur le UserForm, (nommée TextBox1) puis un bouton Valider (nommé CommandButton1)
Le but, c'est lorsque l'on clique sur le bouton, les données du textbox s'insère dans les cellules.
Pour récupérer la valeur du textbox :
TextBox1.Text
Pour sélectionner une cellule :
Range("A1").Select
ou
Cells(1, 1).Select
Pour placer la valeur du textbox dans la cellule A1 :
Range("A1").Value = TextBox1.Text
ou
Cells(1, 1).Value = TextBox1.Text
Pour déterminer une cellule vide dans une colonne : (voir mon snippet ici, et celui avec paramètres là)
Public Function
PremiereLigneVide(Colonne As Integer) As Long
PremiereLigneVide = Columns(Colonne).Find("", , , , xlByRows, xlNext).Row
End Function
Private Sub ExempleUtilisation()
Dim intColonne As Integer
Sheets(1).Select
intColonne = 1
'*** il suffit de changer la valeur de intColonne, qui doit
' correspondre à la colonne de recherche
MsgBox PremiereLigneVide(intColonne)
End Sub
Admettons tu places une valeur numérique dans ton textbox, que tu veux additionner à la cellule A1 :
Range("A1").Value = Range("A1").Value + Val(TextBox1.Text)
Bonne prog !
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Ensuite pour le menu insere un USerForm et mets des bouton dedans
Puis dans l'événement plus haut.
Call Load(UserForm1)
Call UserForm1.Show(vbModal)
Ensuite dans le code du Bouton 1
ActiveWorkBook.Worksheets("SaisieDesTemps").Activate (si la feuille de saisie des temps s'appelle ainsi.
Pour l'autr bouton je vais attendre que tu en dises plus car je suis sur que ce que je te propose n'est pas du tout ce que tu souhaitais faire... il va donc falloir etre plus précis.
Ensuite pour le menu insere un USerForm et mets des bouton dedans
Comment faire pour insérer un UserForm?C'est un bouton?
Puis dans l'événement plus haut.
Call Load(UserForm1)
Call UserForm1.Show(vbModal)
Ensuite dans le code du Bouton 1
ActiveWorkBook.Worksheets("SaisieDesTemps").Activate (si la feuille de saisie des temps s'appelle ainsi.
Je suis vraiment désolé et vous remercie de vous interressé à mon problème mais je suis vraiment nul et là j'ai l'impression de lire une langue étrangère! Si vous pouviez détaillez un maximum....Merci!
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 22 sept. 2006 à 18:45
Salut,
quand tu ouvres excel, appuie sur Alt+F11 et vb s'ouvre, double click (en haut à gauche) sur ThisWorkbook et place le code de Julien^^
Un UserForm, ce n'est pas un bouton mais une fenêtre utilisateur, que tu crées toi même : il suffit, dans vb, d'aller dans le menu Insérer et le sous menu UserForm
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
arthur0201
Messages postés55Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention19 octobre 2006 22 sept. 2006 à 21:33
Je pense que c'est bien ce que je veux faire... mais n'y arrive toujours pas! J'ai suivi les étapes de julien...mais quand j'ai appuyé sur lecture pour tester le truc en cliquant sur mon bouton voilà ce qui c'est affiché:"Erreur d'execution 1004: la méthode activate de la commande Worksheets a échoué." Et quand je clique sur débogage la ligne suivante et en jaune:"ActiveWorkbook.Worksheets("saisi feuille de temps").Activate".... Vous pouvez m'aidez ou vous faut il plus de précision?
arthur0201
Messages postés55Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention19 octobre 2006 22 sept. 2006 à 21:59
Le fichier excel en lui même s'appel tel quel, à l'intérieur g également plusieurs feuille et celle qui est concernée porte le même nom! Est ce de la que vient le problème?
arthur0201
Messages postés55Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention19 octobre 2006 23 sept. 2006 à 09:48
Ben en fait je répondais à CASY qui pensait que mon problème venait du nom de la feuille. Et j'expliquer que mon fichier excel se nomme:" saisie feuille de temps" mais qu'à l'interrieur de celui ci , la feuille qui m'interresse s'appelle aussi "saisie feuille de temps"...
Voilà j'espère que c plus claire...
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 23 sept. 2006 à 20:53
Salut,
le fait que ton classeur ai une feuille de même nom que le classeur ne gêne en rien, dans le sens où tu mets WorkBooks("xyz") et WorkSheets("xyz").
Aucune confusion possible pour vb.
Par contre attention à ton orthographe, dans le message de 9h48, tu mets "saisiesaisi feuille de temps"
La moindre erreur de lettre, et vb n'exécute pas ton code !
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
arthur0201
Messages postés55Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention19 octobre 2006 23 sept. 2006 à 20:58
oui je sais .... c sans le "e" qui est correct....
mais pourquoi sa marche pas alors?
De plus j'ai compris pour le codepour le bouton, mais sa sert à quoi sa:
Private Sub Workbook_Open()
Call Load(UserForm1)
Call UserForm1.Show(vbModal)
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 23 sept. 2006 à 21:38
Pour ton bouton, je ne sais pas pourquoi cela ne fonctionne pas, peut-etre es tu déjà dessus. Sinon essaie en remplaçant Activate par Select :
ThisWorkbook.Sheets("saisi feuille de temps").Select
Puis dans :
Private Sub Workbook_Open()
'** s'effectue à l'ouverture du classeur
Call Load(UserForm1)
'** charge le UserForm (sans le montrer), pas obligatoire
Call UserForm1.Show(vbModal)
'** montre le UserForm, en Modal *
End Sub
* Modal veut dire que tant que cette feuille (userform) est actif, tu ne peux aller nul part ailleurs de ce classeur.
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
arthur0201
Messages postés55Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention19 octobre 2006 23 sept. 2006 à 22:18
Superbe sa fonctionne! Quand je clique sur le bouton play de vb sa fonctionne!
Cependant gros problème....quand je sors d'excel et que j'ouvre le fichier pour faire un test et bien , j'ai une fenêtre userform qui s'ouvre mais elle est vide! mon bouton n'y ai pas.
arthur0201
Messages postés55Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention19 octobre 2006 23 sept. 2006 à 23:26
Merci beaucoup sa marche impec!
-J'aurai également voulu savoir s'il n'étais pas possible de faire disparaitre le userform une fois qu'on a cliqué sur un bouton?
-Mais plus important si vous pouviez répondre à la 2 ieme question initial de mon projet, c'est a dire:"-Un bouton intitulé chantier n° , qui lorsqu'on lui indique le n° additionne le nombre d'heures passé pour le chantier correspondant...."
-Sinon puis faire de la saisie via l'userform et qui s'insererai en meme temps dans mon fichier excel?(sorte de champs ou on pourrais saisir le nombre d'heure passé, le code du chantier et le code du salarié)?