Compteur dans UserForm qui bloque à 1 ou ne s'affiche pas

gypsos

XLDnaute Junior
Bonjour,
Je cherche depuis un bon moment comment faire tourner un compteur (N_Poste) dans un userform lors de la mise à jour partielle du dit userform pour éviter de ressaisir des infos lors lorsque l'enregistrement suivant est pratiquement identique. Comme je ne connais pas suffisamment le vb j'ai l'impression que j'ai mal placé la boucle ou mal écrite, je joins le code l'userform (le fichier est trop lourd) si vous vous voulez bien m'aider, merci d'avance.

' Condamnation du bouton de fermeture de fenêtre
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Vous ne pouvez pas utiliser ce bouton de fermeture."
Cancel = True
End If
End Sub
Sub poste()
For N_Poste = 1 To 25
N_Poste = N_Poste + 1
Next N_Poste
End Sub
'==================================================INITIALISATION
'ici c'est l'initialisation du UserForm

Private Sub UserForm_Initialize()
'Ici je remplis les textbOx
Sheets("DDP_C").Select
If Worksheets("DDP_C").AutoFilterMode Then
Worksheets("DDP_C").AutoFilterMode = False
End If
Sheets("chrono").Select
Sheets("chrono").Activate
Dim N_Chrono As Integer
Dim N_Poste As Integer
poste
'N_Poste = 1
Range("B1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, -1).Select
N_Chrono = ActiveCell.Value
'Range("A1:AA1").Select
'Selection.AutoFilter
TxtBchrono.Value = N_Chrono
TxtBnposte.Value = N_Poste
TxtBclient.Value = ""
Combcomm.Value = ""
TxtBdate.Value = Date
ComBtype.Value = ""
TxtBlibelle.Value = ""
TxtBcond.Value = ""
TxtBdiam.Value = ""
TxtBrm.Value = ""
TxtBall.Value = ""
TxtBfini.Value = ""
TxtBpoids.Value = ""
TxtBnotes.Value = ""
'Ici je précise ce que je veux d'affiché dans les bouton...
'Au passage la Propriété Défault à True, rend le bouton actif à la touche Entrée
With CommandButton1
.Caption = "VALIDATION"
.Default = True
End With
CommandButton2.Caption = "Annulation"
End Sub

'======BOUTON VALIDATION
'ici c'est ce qui se passe quand on click sur le Bouton "Validation"
Private Sub CommandButton1_Click()
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne Numéro
'ici je repère la dernière ligne vide pour la Collections des données
L = Sheets("test").Range("C65536").End(xlUp).Row + 1
'Pour voir se qui se passe je bascule sur la feuille "test"
Sheets("test").Activate
'Ici c'est le report de la saisie dans la feuille
With Sheets("test")
.Range("b" & L).Value = TxtBchrono.Value
.Range("C" & L).Value = TxtBclient.Value
.Range("D" & L).Value = Combcomm.Value
.Range("E" & L).Value = TxtBdate.Value
.Range("H" & L).Value = TxtBchrono.Value
.Range("I" & L).Value = TxtBnposte.Value
.Range("J" & L).Value = ComBtype.Value
.Range("K" & L).Value = TxtBlibelle.Value
.Range("L" & L).Value = TxtBdiam.Value
.Range("O" & L).Value = TxtBpoids.Value
.Range("P" & L).Value = TxtBcond.Value
.Range("Q" & L).Value = TxtBrm.Value
.Range("R" & L).Value = TxtBall.Value
.Range("S" & L).Value = TxtBfini.Value
.Range("T" & L).Value = TxtBnotes.Value
'<<<<<La Variable Publique
Range("O1").Select
Selection.End(xlDown).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
' ActiveCell.Offset(1, 1).Select
'Range("O1013").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End With
With Sheets("chrono")
Dim Li As Integer 'Déclaration de variable "Li" pour connaitre la Ligne Numéro
'ici je repère la dernière ligne vide pour la Collections des données
Li = Sheets("chrono").Range("b65536").End(xlUp).Row + 1
.Range("b" & Li).Value = TxtBclient.Value
Range("O1").Select
Selection.End(xlDown).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
' ActiveCell.Offset(1, 1).Select
'Range("O1013").Select
ActiveSheet.Paste
Application.CutCopyMode = False

End With
'Ici je vide les Box
TxtBchrono.Value = ""
TxtBclient.Value = ""
Combcomm.Value = ""
TxtBdate.Value = ""
ComBtype.Value = ""
TxtBlibelle.Value = ""
TxtBcond.Value = ""
TxtBdiam.Value = ""
TxtBrm.Value = ""
TxtBall.Value = ""
TxtBfini.Value = ""
TxtBpoids.Value = ""
TxtBnotes.Value = ""
poste
Unload UserForm5
Sheets("test").Select
Range("A1:AA1").Select
Selection.AutoFilter
Sheets("Menu").Select
Range("E25").Select
' Selection.End(xlDown).Select
'ActiveWorkbook.Close SaveChanges:=True
'TextBox1.SetFocus
End Sub

'======BOUTON "Autre poste diam idem"
'ici c'est ce qui se passe quand on click sur le Bouton " Autre diamètre"
Private Sub CommandButton3_Click()
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne Numéro
'ici je repère la dernière ligne vide pour la Collections des données
L = Sheets("test").Range("C65536").End(xlUp).Row + 1
'Pour voir se qui se passe je bascule sur la feuille "test"
Sheets("test").Activate
'Ici c'est le report de la saisie dans la feuille
With Sheets("test")
.Range("b" & L).Value = TxtBchrono.Value
.Range("C" & L).Value = TxtBclient.Value
.Range("D" & L).Value = Combcomm.Value
.Range("E" & L).Value = TxtBdate.Value
.Range("H" & L).Value = TxtBchrono.Value
.Range("I" & L).Value = TxtBnposte.Value
.Range("J" & L).Value = ComBtype.Value
.Range("K" & L).Value = TxtBlibelle.Value
.Range("L" & L).Value = TxtBdiam.Value
.Range("O" & L).Value = TxtBpoids.Value
.Range("P" & L).Value = TxtBcond.Value
.Range("Q" & L).Value = TxtBrm.Value
.Range("R" & L).Value = TxtBall.Value
.Range("S" & L).Value = TxtBfini.Value
.Range("T" & L).Value = TxtBnotes.Value
'<<<<<La Variable Publique
Range("O1").Select
Selection.End(xlDown).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
' ActiveCell.Offset(1, 1).Select
'Range("O1013").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End With
'Ici je vide les Box
poste
'TxtBchrono.Value = ""
'TxtBclient.Value = ""
'Combcomm.Value = ""
'TxtBdate.Value = ""
'ComBtype.Value = ""
'TxtBlibelle.Value = ""
'TxtBcond.Value = ""
TxtBdiam.Value = ""
'TxtBrm.Value = ""
'TxtBall.Value = ""
'TxtBfini.Value = ""
TxtBpoids.Value = ""
'TxtBnotes.Value = ""
'Unload UserForm5
'Sheets("test").Select
'Range("A1:AA1").Select
'Selection.AutoFilter
'Sheets("Menu").Select
' Range("E25").Select
' Selection.End(xlDown).Select
'ActiveWorkbook.Close SaveChanges:=True
'TextBox1.SetFocus
End Sub

'======BOUTON "Autre fil"
'ici c'est ce qui se passe quand on click sur le Bouton " Autre fil"
Private Sub CommandButton4_Click()
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne Numéro
'ici je repère la dernière ligne vide pour la Collections des données
L = Sheets("test").Range("C65536").End(xlUp).Row + 1
'Pour voir se qui se passe je bascule sur la feuille "test"
Sheets("test").Activate
'Ici c'est le report de la saisie dans la feuille
With Sheets("test")
.Range("b" & L).Value = TxtBchrono.Value
.Range("C" & L).Value = TxtBclient.Value
.Range("D" & L).Value = Combcomm.Value
.Range("E" & L).Value = TxtBdate.Value
.Range("H" & L).Value = TxtBchrono.Value
.Range("I" & L).Value = TxtBnposte.Value
.Range("J" & L).Value = ComBtype.Value
.Range("K" & L).Value = TxtBlibelle.Value
.Range("L" & L).Value = TxtBdiam.Value
.Range("O" & L).Value = TxtBpoids.Value
.Range("P" & L).Value = TxtBcond.Value
.Range("Q" & L).Value = TxtBrm.Value
.Range("R" & L).Value = TxtBall.Value
.Range("S" & L).Value = TxtBfini.Value
.Range("T" & L).Value = TxtBnotes.Value
'<<<<<La Variable Publique
Range("O1").Select
Selection.End(xlDown).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
' ActiveCell.Offset(1, 1).Select
'Range("O1013").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End With
'Ici je vide les Box
'TxtBchrono.Value = ""
'TxtBclient.Value = ""
'Combcomm.Value = ""
'TxtBdate.Value = ""
ComBtype.Value = ""
TxtBlibelle.Value = ""
TxtBcond.Value = ""
TxtBdiam.Value = ""
TxtBrm.Value = ""
TxtBall.Value = ""
TxtBfini.Value = ""
TxtBpoids.Value = ""
TxtBnotes.Value = ""
poste
'Unload UserForm5
'Sheets("test").Select
'Range("A1:AA1").Select
'Selection.AutoFilter
'Sheets("Menu").Select
' Range("E25").Select
' Selection.End(xlDown).Select
'ActiveWorkbook.Close SaveChanges:=True
'TextBox1.SetFocus
End Sub

'==================================================BOUTON EXIT
'ici c'est le Bouton Exit .........

Private Sub CommandButton2_Click()
Unload UserForm5 'on peut écrire aussi "Unload Me"
Sheets("Menu").Select
Range("E25").Select
End Sub

Private Sub UserForm_Click()

End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Compteur dans UserForm qui bloque à 1 ou ne s'affiche pas

Bonjour Gypsos, bonjour le forum,

Bon pas franchement envie de repasser tout ton code pour trouver là où ça coince...
Peut-être une idée qui pourrait te convenir. Tu écris en dur la valeur de ton compteur dans une cellule cachée. À l'initialisation tu vas la récupérée, à la validation tu l'incémentes de +1...
 

kjin

XLDnaute Barbatruc
Re : Compteur dans UserForm qui bloque à 1 ou ne s'affiche pas

Bonjour, salut Robert :),
Aucune explication rationnelle sur l'utilisation de ce compteur...!
A quoi sert cette boucle qui renvoie toujours 26...!
Inutile de joindre tout le fichier...!
A+
kjin
 

gypsos

XLDnaute Junior
Re : Compteur dans UserForm qui bloque à 1 ou ne s'affiche pas

Comme je n'arrivais pas à incrémenter ce compteur j'ai essayé de faire une boucle qui pourrait je pensais pourrait me permettre d'y arriver mais ce n'est pas le cas. (en fait si j'ai bien compris c'est boucle tourne en permanence?)
 

kjin

XLDnaute Barbatruc
Re : Compteur dans UserForm qui bloque à 1 ou ne s'affiche pas

Re,
En l'état la boucle ne sert à rien, elle renverra toujours 26, mais je pense plus surement qu'elle ne sert à rien tout court !
Dans le code ci-dessous, la variable N_Poste est incrémentée de 1 à chaque fois que l'on appuie sur le bouton1.Il faut cependant déclarer cette variable en tête du module pour qu'elle soit disponible pour toutes les procédures du formulaire
Code:
Dim N_Poste&

Private Sub CommandButton1_Click()
N_Poste = N_Poste + 1
End Sub

Private Sub UserForm_Initialize()
N_Poste = 1
End Sub
Sans fichier accompagnée d'un note expliquant le pb, je ne peux rien de plus pour toi
A+
kjin
 

gypsos

XLDnaute Junior
Re : Compteur dans UserForm qui bloque à 1 ou ne s'affiche pas

Merci du temps passé à faire progresser un neuneu, un renseignement svp (Je sais que je vais paraître idiot, mais je me lance...) la notion module, userform, reste assez floue pour moi... La déclaration de la variable (la première ligne de ton code) je la pose ou dans mon cas? Dans le code du bouton qui lance l'userform? Merci d'avance de ta patience....
 

gypsos

XLDnaute Junior
Re : Compteur dans UserForm qui bloque à 1 ou ne s'affiche pas

Merci, j'ai compris le principe mais je n'arrive pas à transposer dans mon userform5. Je ne vais finir par me faire une raison je suis une buse! Si vous avez encore un peu de courage je joins mon fichier excel. Merci d'avance...
 

Pièces jointes

  • base_ddp.zip
    187.5 KB · Affichages: 55

kjin

XLDnaute Barbatruc
Re : Compteur dans UserForm qui bloque à 1 ou ne s'affiche pas

Re,
Désolé mais je ne comprends rien au fonctionnement de ce formulaire et encore moins à quoi sert le compteur
En attendant qq explications claires
A+
kjin
 

gypsos

XLDnaute Junior
Re : Compteur dans UserForm qui bloque à 1 ou ne s'affiche pas

Je vais recommencer au début: je veux enregistrer des demandes de prix de client. Une demande de prix peut comporter plusieurs postes, je veux un n° chrono pour la demande de prix (celui là j'y arrive), un sous chrono par poste (celui qui me pose problème).

Ensuite quand je reçois les offres de mes fournisseurs je saisie cette offre et je concatène le n° de l'offre le n° du poste et le prix, il ne me reste qu'à trier en croissant pour retrouver mes offres de prix classées.

Les différents postes de la demande de prix peuvent être très peu différents, et pour faciliter le travail de la personne qui saisit, j'ai voulu faire un userform avec 3 validations différentes la première s'il n'y a qu'un poste, l'autre si deux paramètres changent la dernière si la moitié des paramètres changent, mais ce n'est peut-être pas possible après tout... du moins pas comme je l'ai imaginé......:confused:
 

Discussions similaires

Réponses
4
Affichages
191
Réponses
6
Affichages
122

Statistiques des forums

Discussions
312 095
Messages
2 085 250
Membres
102 836
dernier inscrit
Ali Belaachet