Urgent débutant dans la galère avec VB!

Résolu
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 octobre 2006 - 22 sept. 2006 à 15:49
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 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.

23 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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 )
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>
3
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
22 sept. 2006 à 16:36
désolé je connais pas vba :( et encore moins excel :) lol bonne chance uand meme et j'espere que ca va le faire pour toi
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
22 sept. 2006 à 16:41
Salut,


Regarde du cote de l'evenement Open de l'objet THiworkbook








Private Sub Workbook_Open() 

End Sub 
 







<small> Coloration syntaxique automatique [AFCK]</small>

       





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.






@+,   Ju£i?n
0
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 octobre 2006
22 sept. 2006 à 18:30
Regarde du cote de l'evenement Open de l'objet THiworkbook



C'est quoi cet evenement et où dois je regarder?









Private Sub Workbook_Open() 

End Sub 
 







<small>Coloration syntaxique automatique [AFCK]</small>

       





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!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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>
0
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 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?

Merci
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
22 sept. 2006 à 21:37
A la place de saisi feuille de temps, il faut que tu mette le nom de ta feuille à toi, celle ou tu saisise les temps.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 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?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
22 sept. 2006 à 22:04
Humm je comprends pas trop, peux tu donner plus d'ampleur à ta demande stp  merci

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 octobre 2006
22 sept. 2006 à 22:59
Ben j'ai mis le bon nom... d'où j'ai du mal faire quelque chose mais je sais pas quoi!
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 sept. 2006 à 00:57
Beh quand tu mettras plus de lignes poyur m'expliquer ton problème, peut-être que je pourrais t'aider.

"Le fichier excel en lui même s'appel tel quel"
>> ça ne veut rien dire

"...qui est concernée porte le même nom"
>> le même nom que quoi ???

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 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...
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
23 sept. 2006 à 16:48
Vérifie bien le nom que tu as inscrit. Il se peut qu'il diffère d'un espace seulement.

Pour être certain que le nom est bien écrit, double-clique le nom de l'onglet, une fois "highlighté", tu fais Ctrl-C, puis ESC

Et tu vas dans ton code et remplace le nom entre guillemets par Ctrl-V


Mais peut-être que l'erreur provient d'ailleurs.

Il faudrait que tu écrives le code comme tu l'a écrit en spécifiant tu l'as écrit, dans quel(s) module(s)...

MPi
0
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 octobre 2006
23 sept. 2006 à 19:44
J'ai fait le copier coller.... Voici le reste...j'espère que vous allez pouvoir m'aider..

Voici  mon code dans THIsWorkbook:


Private Sub Workbook_Open()
Call Load(UserForm1)
Call UserForm1.Show(vbModal)
End Sub

Et dans l'Userform il ya le code suivant pour le bouton:

Private Sub CommandButton1_Click()
ActiveWorkbook.Worksheets("saisi feuille de temps").Activate
End Sub

Voilà j'espère que vous pouvez m'aidez....
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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>
0
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 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

Merci pour votre aide
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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>
0
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 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.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 sept. 2006 à 22:26
Dans
Private Sub Workbook_Open()

   Call Load(UserForm1)      

   Call UserForm1.Show(vbModal)

End Sub

Remplace UserForm1 par le nom du UserForm que tu as attribué, et ce sera bon !

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
arthur0201 Messages postés 55 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 19 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é)?

En vous remerciant
0
Rejoignez-nous