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
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