Formulaire sur VBA incrémentation nouvelle ligne [Résolu]

Signaler
Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
25 août 2009
-
Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
25 août 2009
-
Bonjour,
je suis bloquée, je viens d'établir un formulaire et j'aimerai à partir des données saisies dans les combobox cliquer sur un CommandButton1 et que mes données s'enregistrent dans une feuille excel à la suite. Ex: 15/07/2009 ligne A3 et le 16/07/2009 ligne juste en dessous A4.
Merci d'avance pour votre aide.

Ci-joint mon dossier:

Private Sub CommandButton1_Click()
msg = "CONFIRMATION ENREGISTREMENT DU STOCK"
Title = "VOULEZ VOUS CONTINUER?"
reponse = MsgBox(Title, vbYesNoCancel, msg)
If reponse = 6 Then
MsgBox jour + " " + mois + " " + textannee.Value
Range("A3") = jour
Range("B3") = mois
Else
MsgBox "Annulation effectuée"
End If
End Sub
Private Sub mois_Change()
End Sub

Private Sub textannee_Change()
End Sub

Private Sub UserForm_Activate()
End Sub
Private Sub UserForm_Initialize()
'indication du mois
mois.AddItem ("Janvier")
mois.AddItem ("Février")
mois.AddItem ("Mars")
mois.AddItem ("Avril")
mois.AddItem ("Mai")
mois.AddItem ("Juin")
mois.AddItem ("Juillet")
mois.AddItem ("Aout")
mois.AddItem ("Septembre")
mois.AddItem ("Octobre")
mois.AddItem ("Novembre")
mois.AddItem ("Décembre")
'indication du jour
jour.AddItem ("1")
jour.AddItem ("2")
jour.AddItem ("3")
jour.AddItem ("4")
jour.AddItem ("5")
jour.AddItem ("6")
jour.AddItem ("7")
jour.AddItem ("8")
jour.AddItem ("9")
jour.AddItem ("10")
jour.AddItem ("11")
jour.AddItem ("12")
jour.AddItem ("13")
jour.AddItem ("14")
jour.AddItem ("15")
jour.AddItem ("16")
jour.AddItem ("17")
jour.AddItem ("18")
jour.AddItem ("19")
jour.AddItem ("20")
jour.AddItem ("21")
jour.AddItem ("22")
jour.AddItem ("23")
jour.AddItem ("24")
jour.AddItem ("25")
jour.AddItem ("26")
jour.AddItem ("27")
jour.AddItem ("28")
jour.AddItem ("29")
jour.AddItem ("30")
jour.AddItem ("31")

textannee = ("2009")
End Sub
Private Sub UserForm_Terminate()
MsgBox "Traitement Terminé"
End Sub


steph8032

8 réponses

Messages postés
38
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
15 avril 2010

Est ce que tu peux cliquer sur accepter la réponse pour fermer le post stp
Zock[size=50]
/size
Messages postés
38
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
15 avril 2010

je suis pas sure d'avoir compris,ton exemple n'est pas très clair.

Moi ce que j'ai compris c'est :
1.l'utilisateur choisit des valeurs
2.il enregistre
3.Les valeurs sont marquées dans une ligne X
4.l'utilisateur choisit des valeurs
5.il enregistre
6.Les valeurs sont marquées dans une ligne X+1

C'est bien ça ?
Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
25 août 2009

oui c'est exactement ça.
Merci,


steph8032
Messages postés
38
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
15 avril 2010

Le plus simple, c'est que tu crées une varaible générale dans ton code. A chaque fois que tu écris une ligne, tu implémente ta variable.

'dans général
Dim compteur_ligne = 3 'si 3 est la premiere ligne que tu utilises


Private Sub CommandButton1_Click() 
msg = "CONFIRMATION ENREGISTREMENT DU STOCK" 
Title = "VOULEZ VOUS CONTINUER?" 
reponse = MsgBox(Title, vbYesNoCancel, msg) 
If reponse = 6 Then 
MsgBox jour + " " + mois + " " + textannee.Value 
Cells(1,compteur_ligne) = jour '******
Cells(2,compteur_ligne) = mois '******
Compteur_ligne = compteur_ligne + 1
Else 
MsgBox "Annulation effectuée" 
End If 
End Sub 





End sub

Si tu veux une explication plus détaillé, n'hésite pas.
--< Signé : Zock >--
Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
25 août 2009

Merci pour le programme, mais je n'y arrive toujours pas, j'ai indiqué Dim compteur_ligne=3 'dans General

dans commandbutton/ click
Dimcompteur_ligne = 3 ' je suis obligée de coller Dim au mot compteur sinon j'ai un message d'erreur
Private Sub CommandButton1_Click()
msg = "CONFIRMATION ENREGISTREMENT DU STOCK"
Title = "VOULEZ VOUS CONTINUER?"
reponse = MsgBox(Title, vbYesNoCancel, msg)
If reponse = 6 Then
MsgBox jour + " " + mois + " " + textannee.Value
Cells(1, compteur_ligne) = jour
Cells(2, compteur_ligne) = mois
compteur_ligne = compteur_ligne + 1
Else
MsgBox "Annulation effectuée"
End If
End Sub
End Sub

Excel me dit quand j'exécute => fin de compilation: instruction incorrecte à l'extérieur d'une procédure.
Merci pour l'aide

steph8032
Messages postés
38
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
15 avril 2010

Normalement ça marche, j'ai fait le test

Dim compteur_ligne  'désolé pour l'erreur  
Private Sub UserForm_Initialize()  ' au lancement de ta feuille la variable prendra la valeur 3
compteur_ligne = 3
End Sub


Private Sub CommandButton1_Click() 
msg = "CONFIRMATION ENREGISTREMENT DU STOCK" 
Title = "VOULEZ VOUS CONTINUER?" 
reponse = MsgBox(Title, vbYesNoCancel, msg) 
If reponse = 6 Then 
MsgBox jour + " " + mois + " " + textannee.Value 
Cells(compteur_ligne, 1) = jour '<====== j'avais interverti colonne et ligne
Cells(compteur_ligne, 2) = mois 
compteur_ligne = compteur_ligne + 1 
Else 
MsgBox "Annulation effectuée" 
End If 
End Sub 




Zock - Pensez à accepter les réponses[size=50]
/size
Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
25 août 2009

Merci, merci, ça marche je suis contente.
Maintenant que tu as résolu mon problème je vais essayer de développer le programme.

Encore merci,


steph8032
Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
25 août 2009

Une autre question, comment fait-on pour ajouter une formule de calcul, j'aimerai pour un bouton qu'il se calcule automatiquement en fonction de la donnée d'un autre bouton.

ex: il y a 50 personnes => je veux 20% de cet effectif soit 10 personnes. J'ai pensé indiquer =>
If Nombre_pers.value then 'textbox
Nombre_w= Nombre_pers*0.20 'textbox
end if

et après j'indiquerai, Cells(compteur_ligne, 5) = Nombre_w dans mon bouton de commande
sauf que celà ne marche pas malheureusement.

NB: lorsque je sort de mon application pour indiquer une nouvelle date celà efface la donnée de la 2ième ligne pour ajouter la nouvelle donnée?

Merci,
steph8032