Problème sur validation des données et appel de donné
Résolu
Bonjour,
pour le rappel des donne j'ai mis en place dans mon tableau
et j’ai créé le même userform qu'avis de travail et et j'ai mis ce code et visual me dis qu’il y a une erreur
ci dessous mon fichier
https://www.cjoint.com/c/GKujGvCJti5
j'ai crée lorsque que l’on pointe sur la feuille charge de consignation en h60 une signature a main levée mais je voudrais efface des que j'ai clique sur la macro imprimé
merci de votre aide
Private Sub CommandButton1_Click()
Dim l_info As Integer
Dim ws As Worksheet
TextBoxFINDAT.Tag = Date
Set ws = ThisWorkbook.Worksheets("TABLEAU")
With ws
l_info = .Columns(2).Find(ComboBoxfiche.Value, , , xlWhole).Row
.Range("W" & l_info).Value = TextBoxFINCH 'NOM CHARGE DE TRAVAUX'
.Range("X" & l_info).Value = TextBoxFINST 'societe'
.Range("Y" & l_info).Value = TextBoxFINCCS 'NOM CHARGE DE consignation'
.Range("Z" & l_info).Value = Format(CDate(TextBoxFINDAT.Tag), "dd/mm/yyyy") 'date des travaux terminer'
.Range("AA" & l_info).Value = TextBoxFINHEU 'heure des travaux terminer'
If CheckBox1.Value = True Then
.Range("AC" & l_info).Value = "Déconsigné"
Else
.Range("AC" & l_info).Value = "Non Déconsigné"
End If
End With
Unload Me
End Sub
pour le rappel des donne j'ai mis en place dans mon tableau
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 29 Then UserFormRAPPEL.Show
End Sub
et j’ai créé le même userform qu'avis de travail et et j'ai mis ce code et visual me dis qu’il y a une erreur
Private Sub ComboBoxfiche1_Change()
Dim Ligne As Integer
With ThisWorkbook.Sheets("TABLEAU")
Ligne = .Columns("B").Find(Me.ComboBoxfiche1.Value, .Range("b3"), xlValues).Row
Me.TextBoxFINCH.Value = .Cells(Ligne, "W") 'colone W'
Me.TextBoxFINST.Value = .Cells(Ligne, "X") 'colone S'
Me.TextBoxFINCCS.Value = .Cells(Ligne, "Y") 'colone Y'
Me.TextBoxFINDAT.Value = .Cells(Ligne, "Z") 'colone Z'
Me.TextBoxFINHEU.Value = .Cells(Ligne, "AA") 'colone AA'
End With
Unload Me
End Sub
ci dessous mon fichier
https://www.cjoint.com/c/GKujGvCJti5
j'ai crée lorsque que l’on pointe sur la feuille charge de consignation en h60 une signature a main levée mais je voudrais efface des que j'ai clique sur la macro imprimé
merci de votre aide
2 réponses
-
Bonjour,
Il serait préférable de tester le résultat de la méthode "Find". Pourquoi fermez-vous votre formulaire (Unload Me) si vous voulez y afficher des champs de votre tableau ??
Par ailleurs, votre code serait plus lisible avec une bonne indentation.
Private Sub ComboBoxfiche1_Change()
Dim cel As Range, Ligne As Integer
With ThisWorkbook.Sheets("TABLEAU")
Set cel = .Columns("B").Find(Me.ComboBoxfiche1.Value, .Range("b3"), xlValues)
If Not cel Is Nothing Then
Ligne = cel.Row
Me.TextBoxFINCH.Value = .Cells(Ligne, "W") 'colone W'
Me.TextBoxFINST.Value = .Cells(Ligne, "X") 'colone S'
Me.TextBoxFINCCS.Value = .Cells(Ligne, "Y") 'colone Y'
Me.TextBoxFINDAT.Value = .Cells(Ligne, "Z") 'colone Z'
Me.TextBoxFINHEU.Value = .Cells(Ligne, "AA") 'colone AA'
End If
End With
End Sub-
-
@cedric0715Cela me parait logique car les cellules de votre tableau alimentant votre UserForm pour la fiche n°1 sont vides.
-
-
-
si par exemple, au lieu de mettre la colonne W pour le chargé de travaux,
Me.TextBoxFINCH.Value = .Cells(Ligne, "W") 'colone W'
vous mettiez la colonne C, vous auriez un résultatMe.TextBoxFINCH.Value = .Cells(Ligne, "C") 'colone C
--