Urgent débutant dans la galère avec VB! [Résolu]

Signaler
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006
-
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006
-
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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
"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>
Messages postés
101
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
1 novembre 2007

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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
47
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
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006

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!
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
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>
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006

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
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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 #
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006

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?
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
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>
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006

Ben j'ai mis le bon nom... d'où j'ai du mal faire quelque chose mais je sais pas quoi!
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
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>
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006

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...
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006

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....
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
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>
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006

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
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
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>
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006

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.
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
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>
Messages postés
55
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
19 octobre 2006

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