Besoind'aide sur les userforms et le renvoie de valeur

Bonjour

je me permet de vous solliciter a nouveau pour mon projet

mon soucis est le suivant:

j ai un userform avec 7 textboxs chacune renvoyant à un mode d encaissement qui dois etre renvoyer dans l onglet caisse du claseur

c est à dire que tout au long de la saisie sur un jour, les données saisient dans la textbox de 1 à 7 doivent se remplir dans des colonnes differentes

j utilise une variable nommé xIndex

xIndex=9

je l ai declarer dans le module 1 du classseur de la façon suivante

Sub test()
' declaration de la variable xIndex

Dim xIndex As Integer
xIndex = Cells(9, 2).Value

End Sub

et dans mon userForm 1 j ai le code suivant:

Private Sub CheckBox1_Click()

End Sub

Private Sub cmdannule_Click()
'On vide le formulaire

Unload Me
'on cache le formulaire

UserForm1.Hide

End Sub

Private Sub cmdvalide_Click()
'on transfert les donnée de la text box 1

Sheets("CAISSE").Cells(xIndex, 2).Value = TextBox1.Value

'on transfert les donnée de la text box 2

Sheets("CAISSE").Cells(xIndex, 3).Value = TextBox2.Value

'on transfert les donnée de la text box 3

Sheets("CAISSE").Cells(xIndex, 4).Value = TextBox3.Value

'on transfert les donnée de la text box 4

Sheets("CAISSE").Cells(xIndex, 5).Value = TextBox4.Value

'on transfert les donnée de la text box 5

Sheets("CAISSE").Cells(xIndex, 6).Value = TextBox5.Value

'on transfert les donnée de la text box 6

Sheets("CAISSE").Cells(xIndex, 7).Value = TextBox6.Value

'on transfert les donnée de la text box 7

Sheets("CAISSE").Cells(xIndex, 8).Value = TextBox7.Value

' on decharge le formulaire

Unload Me

'on cache le formulaire

UserForm1.Hide
xIndex = xIndex + 1
End Sub

Private Sub Label1_Click()

End Sub

Private Sub TextBox1_Change()

End Sub

Private Sub TextBox2_Change()

End Sub

Private Sub TextBox3_Change()

End Sub

Private Sub TextBox4_Change()

End Sub

Private Sub TextBox5_Change()

End Sub

Private Sub TextBox6_Change()

End Sub

Private Sub TextBox7_Change()

End Sub

Private Sub UserForm_Click()

End Sub

le probleme c est que ça ne fonctionne pas et que j ai le message suivant

erreur 1004 erreur definie par la pplication ou par l objet

quelqu un peut il m aider

d avance merci

cedric cc

Bonsoir

C'est la déclaration de ta variable xIndex qui n'est pas valable

Il faut la déclarer en dehors de toute macro

En début de ton module

    
Public xIndex As Integer
Sub test()
    ' declaration de la variable xIndex
    xIndex = Cells(9, 2).Value
    End Sub

bonne nuit

Bonsoir et merci de ton aide

j ai donc déclarer ma variable comme tu me le suggère mais cela ne fonctionne toujours pas

J ai toujours le même message d erreur

si quelqu'un voit une autre solution

peut etre que j ai commis uen erreur dans le code de mon userform

comme je débute en VBA je ne sait pas du tout

je reste ouvert a toutes vos remarques

d avance merci

cedric cc

Bonsoir

sans fichier pas trop facile

Mais places

xIndex = Cells(9, 2).Value

dans la macro Private Sub Userform_Initilize()

Private Sub UserForm_Initialize()
xIndex = Cells(9, 2).Value
End Sub

A suivre

Ré bonsoir bonsaï mais je ne vois pas a quel endroit je doit placer le code

De plus si tu veux mon fichier c est un peut sur il fait 45. Mo

Je te post un lien si tu veux

Merci encore

Cedric cc

-- 25 Mar 2011, 00:38 --

Voici une version de mon fichier avec ce bug et d' autres résolu depuis

D' avance merci

Bonsoir

J'avais vu ton fichier

Et pour corriger le 1er bug il suffisait de placer Sh. devant Range

If Not Intersect(Target,  Sh.Range("D:D,J:J,M:M,P:P,S:S,V:V,Y:Y,AB:AB ")) Is Nothing Then

Sinon le code que je t'ai passé il faut le mettre dans le code de l'userform

Bonne nuit

Ok merci banzai et excuse moi pour la faute de frappe sur ton pseudo juste avant

Je test ça de suite

Merci encore

Cédric cc

Bonjour

Une question

Dans quelle page tu récupères la valeur de la cellule B9 ?

A suivre

bon je reviens cela ne marche toujours pas

j ai essayer de placer un espion et la ça fonctionne bien

seul probleme l espion disparait lors de la fermeture du classeur

et on doit le remettre lors de la reouverture porcess que les utilisateurs finaux sont incapables de faire

aider moi là je ne sais plus quoi faire

cedric cc

-- 25 Mar 2011, 01:10 --

Dans la page caisse et ce que je souhaiterais c est que la. Première valeurs soit B9 ensuite B C D' ou E 10 qui prennent le relais sur les autres saisie etc....

J espère être clair

Cedric cc

Bonjour

A tester

Avec une instruction que j'ai "emprunté" (mais chut) à Dubois (que je salue)

Bonne nuit

Bonjour

Lol ! vous ne dormez plus là !! ....

Je m'incruste dans ce post juste pour un détail. Dans ta Private Sub cmdannule_Click(), je vois une instruction USERFORM1.HIDE.

Il y a peut être une bonne raison mais à éviter car ton objet USF est toujours ouvert pour Excel. Il reste masqué et non fermé. Plus haut tu as l'instruction Unload qui est celle à utiliser.

Maintenant je ne vois pas le but de décharger l'USF puis de la cacher... A vérifier donc dans ton code

Je laisse Banzai continuer avec toi.

Amicalement

super et merci Banzai pour ton aide sa fonctionne nickel

par contre la question que je me pose est :

cela se remet il a zéro dès qu'il y a changement de jour

ou peut on inclure une variable de date

d avance merci

Cédric cc

-- 25 Mar 2011, 12:36 --

merci Dan pour ta remarque je vois pour prendre en compte celle ci dans le code

mais comme je le disait je debute donc je fait beaucoup d erreur de code en définitive

merci encore

cedric cc

Re,

mais comme je le disait je debute donc je fait beaucoup d erreur de code en définitive

Pas de souci. Qui ne fait pas d'erreur ....

Je te laisse avec Banzai continuer ce fil puisque c'est lui qui le suit.

Amicalement

Bonjour

Bonjour Dan

Ce n'est pas parce que je réponds à une demande que le sujet "m'appartient"

Toutes les idées sont bonnes à prendre

Cela serait pénaliser le demandeur de ne rien faire (dire) sous le prétexte que "quelqu'un répond"

Bonne journée

cela se remet il a zéro dès qu'il y a changement de jour

ou peut on inclure une variable de date

Je ne comprends pas trop la question

Tu veux remettre à 0 le tableau dans la page "Caisse" si tu choisis une autre date dans la page "Calendrier" ou tu veux remettre à 0 si la date change (entre hier ou aujourd'hui) ?

A suivre

Ré bonjour Banzai et grand merci pour toute ta contribution a mon topic

Désole de ne pas avoir été clair

En faite je souhaiterais que la feuille caisse de remette a zéro quand la date du jour change et non quand l utilisateur clic sur une autre journée

J espère avoir été compréhensible

En tout cas tout est encore merci tu es un maître pour moi

Cedric cc

Bonjour

A l'ouverture du fichier comparaison de la date sur la feuille et la date du jour et si différence effacement de la feuille caisse

Merci je test et je reviens vers toi

cedric cc

-- 25 Mar 2011, 21:58 --

Bonsoir Banzai

Je vien juste de test ta solution et c est énorme c est exactement ce que je souhaitais

C est fantastique mille merci

J abuse peux être un peu mais tu aurais une idée pour que les données rentrée dans le userform incrémenté la cellule qui l a active sachant que cela est variable ?

Merci encore pour ton aide

Cedric cc

-- 25 Mar 2011, 22:03 --

Oups désole pour les fautes d' othographes ça aussi c est pas mon fort

-- 26 Mar 2011, 08:50 --

Bonjour Banzai

pourrais tu s il te plais me mettre le code en ligne du dernier fichier zip car je n arrive pas a le voir

d avance merci infiniement

cedric cc

Bonjour,

pourrais tu s il te plais me mettre le code en ligne du dernier fichier zip car je n arrive pa

Essaie comme ceci :

  • ALT + F11 pour aller dans VBA
  • A gauche tu verras une fenetre VBA Project et dans cette fenêtre tu verras le nom de tes feuilles, Thisworkbook, ton userform...
  • Double click sur ThisWorkbook pour voir le code dans Private sub workbook open. Tu verras le code proposé par Banzai.
Enfin je suppose que c'est celui là que tu veux voir...

Pour Banzai,

Ce n'est pas parce que je réponds à une demande que le sujet "m'appartient"

Toutes les idées sont bonnes à prendre

Cela serait pénaliser le demandeur de ne rien faire (dire) sous le prétexte que "quelqu'un répond"

Effectivement. Mais si celui qui apporte une réponse ne patauge pas dans un fil et par respect pour son investissement dans un fil, je le laisse continuer. Lui aussi peu progresser.

Que de fois, depuis les années que je parcours les forums, je vois plein de solutions sur un fil qui, au final, sement un peu la confusion et "pénalise" aussi le demandeur. Quelques fois cela devient une sorte de "concurrence"... à celui qui postera le plus vite et qui poste le plus... Heureusement sur ce forum je n'ai pas encore pu vraiment le constater.

Amicalement

Merci Dan pour ta réponse

Je tente encore de faire la somme de mes textbox dans la cellule active

Je pensais ajouter ce code au Userform

ActiveCells.Value= Sum(textbox1:7)

Qu en pensez vous?

D' avance merci

Cedric cc

Bonjour

Pour Dan

(je ne voudrais pas trop que ce ce fil devient un échange d'opinion)

Si je vais dans un mur j'aimerais que l'on me dise : même si le fait d'entrer dans le mur me fait comprendre que j'aurais du tourner avant

Bonne journée

Rechercher des sujets similaires à "besoind aide userforms renvoie valeur"