Saisie à partir d'une userform.

Q

Quaisako

Guest
Bonjour à tout le Forum,

Mon problème s'adresse aux virtuoses en VBA.

Lorsque je saisie des données à partir de la userform, ces dernières ne s'inscrivent pas dans la feuille à l'emplacement souhaité.

J'ai essayé de mettre une plage de cellules dans le code, mais ce n'est pas correct.

D'avance, merci pour votre aide.

Quaisako
 

Pièces jointes

  • UserformQuai1.zip
    23.5 KB · Affichages: 47
  • UserformQuai1.zip
    23.5 KB · Affichages: 43
  • UserformQuai1.zip
    23.5 KB · Affichages: 41
@

@+Thierry

Guest
Salut Quaisako

Toujours sur ce UserForm de saisie... J'ai pas encore fini le mien pour la démo !! (mais je ferais un truc pour Noël, promis !! :)

Je pense que tu as plein de trucs qui ne servent à rien dans ton code par exemple :
Private Sub Cmd_Valider_Click()
' With Saisie_Facture
' N°_de_facture = .Txt_Num_Fac.Value
' Date = .Txt_Date_Fac.Value
' Client = .Cbx_Client_Fac.Value
' Désignation = .Cbx_Désignation_Fac.Value
' Référence = .Txt_Réf_Fac.Value
' Prix_Net_Unitaire = .Txt_PNU_Fac.Value
' Kilo = .Txt_Kilo_Fac.Value
' Unité = .Txt_Unité_Fac.Value
' End With
Cà sert à quoi ? (en plus la ligne Date plante, car Date est entre autre une function ou une variable réservée dans VBA)

Pour Ligne :
'Ligne = Sheets("Facture").Range("B65536").End(xlUp).Row + 1
'Ligne = Sheets("Facture").Range("C65536").End(xlUp).Row + 1
'Ligne = Sheets("Facture").Range("D65536").End(xlUp).Row + 1
'Ligne = Sheets("Facture").Range("A65536").End(xlUp).Row + 1
'Ligne = Sheets("Facture").Range("F65536").End(xlUp).Row + 1
Une seule fois suffit !! si tu es sur un même tableau...

Ensuite tu as des contradictions :
dans ta colonne A tu as une formule :
=IF(ISBLANK($D17),"",VLOOKUP(Facture!$D17,ListeFournitures!$A$2:$C$7,2))

Mais dans ton code tu dis :
Ligne = Sheets("Facture").Range("A65536").End(xlUp).Row + 1
puis :
Sheets("Facture").Range("A" & Ligne).Value = Txt_Réf_Fac.Value

VBA écriras la valeur de la textBox "Txt_Réf_Fac" EN DEHORS de ton tableau... (car les cellules contenant des formules sont considérée comme pleine avec "xlup"...)

Tu as encore pas mal de boulot... Et moi aussi au bureau en ce moment.
Si tu fais just çà dans ton bouton de validation :

Private Sub Cmd_Valider_Click()
Dim Ligne As Integer
If Txt_Unité_Fac.Value = "" Then
MsgBox "Saisir Une Quantité"
Exit Sub
End If
Ligne = Sheets("Facture").Range("B25").End(xlUp).Row + 1
With Sheets("Facture")
.Range("B" & Ligne).Value = Txt_Unité_Fac.Value
.Range("C" & Ligne).Value = Txt_Kilo_Fac.Value
.Range("D" & Ligne).Value = Cbx_Désignation_Fac.Value
.Range("F" & Ligne).Value = Txt_PNU_Fac.Value
End With
Unload Saisie_Facture
End Sub

Tu devrais déjà avancer un peu.

Sorry Quaisako, mais je n'ai pas plus de temps maintenant.
En espérant te mettre un peu plus sur la bonne voie...
Bon App
@+Thierry
 
Q

Quaisako

Guest
Bonsoir Thierry, bonsoir le Forum,

Les corrections ont été faites.

Evidemment, c'est mieux ainsi. Merci Thierry! (T'es un vrai prof).

Pour ce qui est des cellules contenant des formules, le mieux est donc de tout faire en code???

Je joints le fichier rectifié.


Merci d'avance, à tous

Quaisako
 

Pièces jointes

  • UserformQuai1.zip
    25 KB · Affichages: 72
  • UserformQuai1.zip
    25 KB · Affichages: 68
  • UserformQuai1.zip
    25 KB · Affichages: 67
@

@+Thierry

Guest
Re salut Quaisako


Hummm
Lorsqu'on efface à partir du bouton "Effacer" de la userform, qui est prévu pour effacer la plage "B16:D25", les formules disparaissent aussi.
Pas chez moi ?

Ton button efface bien ce qu'il faut
Private Sub Cmd_Effacer_Click()
Range("B16:D25").ClearContents
End Sub
(de toutes les manière c'est écrit !!)

Non je ne comprends pas ton problème

Pour ce qui est des formules... Pourquoi ne pas les laisser sur la feuille ?
elles sont bien là ? non ? lol

Enfin je regarderai plus longuement ce truc ce week end... (pour finir ma démo)

Bonne nuit
@+Thierry
 
Q

Quaisako

Guest
Bonjour Thierry, bonjour tout le monde,

Thierry, j'ai cru déceler un étonnement de ta part, (d'avoir pu me dépanner). Là, je parle pour moi, mais depuis 3 mois (que je fréquente le forum), tu as 100% de réussite.

Je peux également dire çà pour André, Ti, Céléda, Vériland, Stéph, Moa, (pour ne citer que les plus actifs (à me répondre)) qui, chacun avec sa spécialité, m'a aidé; ainsi que tous ceux à qui j'ai pris des idées et des fichiers.

Jusqu'à présent, toutes mes questions ont trouvé réponses.

Donc un grand MERCI à vous tous.


J'en reviens à ma userform:

La raison de mon insistance pour avoir du code à la place des formules, est, que j'aimerai profiter pleinement de la userform lors des saisies.

Je m'explique:

Si je garde les formules, je perds la main pour d'éventuelles modifications. (Si je veux modifier une référence ou un prix directement sur la feuille, je supprime la formule).
Hors, si tout se fait à partir de la userform, je peux conserver ou modifier les valeurs des cellules, des colonnes "Réf et P.U.".

@+ Quaisako
 

Discussions similaires

Réponses
3
Affichages
523

Statistiques des forums

Discussions
314 022
Messages
2 104 695
Membres
109 110
dernier inscrit
kld