Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Information dans CommandButton2

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Webperegrino

XLDnaute Accro
Supporter XLD
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 :
VALIDATION
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 122

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
 
Re : Information dans CommandButton2

Bonjour Webperegrino, bonjour le forum,

Ce que je trouve étrange dans ces deux lignes :
Code:
X = Range("ligne").Address
ligne = StrReverse(Left(StrReverse(X), Application.Find("$", StrReverse(X)) - 1))
d'abord que les variables ligne et X ne soient pas déclarées...
Ensuite c'est que ligne soit définie à partir de X, elle-même définie à partir d'une plage nommée "ligne" (si j'ai bien compris).
N'y a-t-il pas confusion entre variable et plage nommée ??? Je pense que Option Explicit en tout début de code te permertrait de tirer les choses au clair (comme disait mon notaire)...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
461
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
3
Affichages
665
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…