Bonjour Le Forum,
Mon fichier est trop gros pour le transmettre ici.
Le fichier gère une base de données
J'utilise un formulaire de saisies SORTIES
Sur une feuille de contrôle il m’est dit que la prochaine saisie se placera dans la base à la ligne 121
Effectivement c’est bien la ligne 121 qui doit recevoir.
Lorsque je demande ma fenêtre de saisie où je veux voir placéé, dans le bouton VALIDATION, l’information ci-avant, cela m’affiche :
Après VALIDATION , les données sont entrées dans la base à la ligne 121, mais le bouton VALIDATION affiche, pour la prochaine saisie :
PROBLEME 1 :
Pouvez-vous analyser les codes pour permettre un bon affichage « placement en ligne… » du CommandButton2 nommé VALIDATION, m'aider à trouver la correction
SOUCI 2 : pouvez-vous m’expliquer les deux lignes suivantes et leur fonctionnement dans la macro ?
Il faut à tout prix garder les deux lignes suivantes sinon mon UserForm ne fonctionne pas
X = Range("ligne").Address
ligne = StrReverse(Left(StrReverse(X), Application.Find("$", StrReverse(X)) - 1))
Voici les codes que j’ai en place :
Sub CommandButton2_Click() 'Valider la saisie-Sorties
On Error Resume Next
X = Range("ligne").Address
ligne = StrReverse(Left(StrReverse(X), Application.Find("$", StrReverse(X)) - 1))
'ligne = Sheets("Référentiel des Saisies SORTIES").[A2610].End(xlUp).Row
ligne = ligne + 1
With Sheets("Référentiel des Saisies SORTIES")
.Range("B" & ligne).Value = Format(CDate(Me.tdate1.Value), "dd/mm/yy")
.Range("C" & ligne).Value = Me.ComboBox5.Value
.Range("D" & ligne).Value = TextBox2.Value
… / …
AllerA_LigneVierge
End With
With Sheets("Référentiel des Saisies ENTRÉES")
Range("B1").Select
End With
ligne = ligne + 1
Init
ligne = Sheets("Référentiel des Saisies SORTIES").[A2610].End(xlUp).Row
CommandButton2.Caption = "VALIDATION" & Chr(13) & Chr(10) & "Placement en ligne n° " & ligne - 9
End Sub
Private Sub Init()
Dim i As Byte, j As Byte, k As Byte
ComboBox4.Value = ""
ComboBox5.Value = ""
tdate1.Value = ""
… / …
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
… / …
ControlInit
End Sub
Private Sub Userform_Initialize() ' Tri de la liste pour ComboBox5 SANS BLANC ET DANS L'ORDRE
With Worksheets("Liste des Sites & Paramètres")
' ComboBox5.List = .Range("K42:K120").Value
Dim c As Range
Dim tablo()
Dim i As Integer, j As Integer
Dim temp As String
Dim present As Boolean
ReDim tablo(1 To 1)
tablo(1) = Cells(1, 1)
For Each c In Sheets("Liste des Sites & Paramètres").Range("K200:K" & Range("K200").End(xlUp).Row)
present = False
For i = 1 To UBound(tablo)
If tablo(i) = c Then present = True
Next i
If Not present Then
ReDim Preserve tablo(1 To UBound(tablo) + 1)
tablo(UBound(tablo)) = c
End If
For i = 1 To UBound(tablo)
For j = 1 To UBound(tablo)
If tablo(i) < tablo(j) Then
temp = tablo(i)
tablo(i) = tablo(j)
tablo(j) = temp
End If
Next j
Next i
Next c
ComboBox5.List = tablo
End With
'**********
'ligne = ligne + 1
'ligne = Sheets("Référentiel des Saisies SORTIES").[A2610].End(xlUp).Row
CommandButton2.Caption = "VALIDATION" & Chr(13) & Chr(10) & "Placement en ligne n° " & ligne - 9
'**********
End Sub
Merci pour vos éclaircissements
Bonne journée
Webperegrino
Mon fichier est trop gros pour le transmettre ici.
Le fichier gère une base de données
J'utilise un formulaire de saisies SORTIES
Sur une feuille de contrôle il m’est dit que la prochaine saisie se placera dans la base à la ligne 121
Effectivement c’est bien la ligne 121 qui doit recevoir.
Lorsque je demande ma fenêtre de saisie où je veux voir placéé, dans le bouton VALIDATION, l’information ci-avant, cela m’affiche :
VALIDATION
Placement en ligne -9
Placement en ligne -9
Après VALIDATION , les données sont entrées dans la base à la ligne 121, mais le bouton VALIDATION affiche, pour la prochaine saisie :
VALIDATION
Placement en ligne -8
Alors que ma feuille de contrôle m’indique bien une prochaine saisie en ligne 122Placement en ligne -8
PROBLEME 1 :
Pouvez-vous analyser les codes pour permettre un bon affichage « placement en ligne… » du CommandButton2 nommé VALIDATION, m'aider à trouver la correction
SOUCI 2 : pouvez-vous m’expliquer les deux lignes suivantes et leur fonctionnement dans la macro ?
Il faut à tout prix garder les deux lignes suivantes sinon mon UserForm ne fonctionne pas
X = Range("ligne").Address
ligne = StrReverse(Left(StrReverse(X), Application.Find("$", StrReverse(X)) - 1))
Voici les codes que j’ai en place :
Sub CommandButton2_Click() 'Valider la saisie-Sorties
On Error Resume Next
X = Range("ligne").Address
ligne = StrReverse(Left(StrReverse(X), Application.Find("$", StrReverse(X)) - 1))
'ligne = Sheets("Référentiel des Saisies SORTIES").[A2610].End(xlUp).Row
ligne = ligne + 1
With Sheets("Référentiel des Saisies SORTIES")
.Range("B" & ligne).Value = Format(CDate(Me.tdate1.Value), "dd/mm/yy")
.Range("C" & ligne).Value = Me.ComboBox5.Value
.Range("D" & ligne).Value = TextBox2.Value
… / …
AllerA_LigneVierge
End With
With Sheets("Référentiel des Saisies ENTRÉES")
Range("B1").Select
End With
ligne = ligne + 1
Init
ligne = Sheets("Référentiel des Saisies SORTIES").[A2610].End(xlUp).Row
CommandButton2.Caption = "VALIDATION" & Chr(13) & Chr(10) & "Placement en ligne n° " & ligne - 9
End Sub
Private Sub Init()
Dim i As Byte, j As Byte, k As Byte
ComboBox4.Value = ""
ComboBox5.Value = ""
tdate1.Value = ""
… / …
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
… / …
ControlInit
End Sub
Private Sub Userform_Initialize() ' Tri de la liste pour ComboBox5 SANS BLANC ET DANS L'ORDRE
With Worksheets("Liste des Sites & Paramètres")
' ComboBox5.List = .Range("K42:K120").Value
Dim c As Range
Dim tablo()
Dim i As Integer, j As Integer
Dim temp As String
Dim present As Boolean
ReDim tablo(1 To 1)
tablo(1) = Cells(1, 1)
For Each c In Sheets("Liste des Sites & Paramètres").Range("K200:K" & Range("K200").End(xlUp).Row)
present = False
For i = 1 To UBound(tablo)
If tablo(i) = c Then present = True
Next i
If Not present Then
ReDim Preserve tablo(1 To UBound(tablo) + 1)
tablo(UBound(tablo)) = c
End If
For i = 1 To UBound(tablo)
For j = 1 To UBound(tablo)
If tablo(i) < tablo(j) Then
temp = tablo(i)
tablo(i) = tablo(j)
tablo(j) = temp
End If
Next j
Next i
Next c
ComboBox5.List = tablo
End With
'**********
'ligne = ligne + 1
'ligne = Sheets("Référentiel des Saisies SORTIES").[A2610].End(xlUp).Row
CommandButton2.Caption = "VALIDATION" & Chr(13) & Chr(10) & "Placement en ligne n° " & ligne - 9
'**********
End Sub
Merci pour vos éclaircissements
Bonne journée
Webperegrino