XL 2010 Userform et recherche d'une ligne pour y mettre les valeurs

loul03

XLDnaute Occasionnel
Bonjour,

Je suis en train de faire un classeur dans lequel j'ai deux userform. Le userform2 est fait pour saisir une demande que je viens ensuite enregistrer dans la feuille "historique entretien". ça c'est ok

par contre j'ai une requête à vous faire, j'aimerais pouvoir, à partir de mon userform1, mettre les données que je vais y renseigner en face de la ligne correspondant à la demande précédemment enregistrée. (grace à l'inscription manuelle du numéro de demande dans la première case du userform1).

Espérant que l'un de vous saura m'aider,

je vous en remercie vraiment

bonne soirée
 

Pièces jointes

  • Userform et ligne.xlsm
    73.3 KB · Affichages: 66

Lone-wolf

XLDnaute Barbatruc
Bonjour loul et bienvenue sur XLD

je te donne l'exemple de départ, ensuite à toi de faire le reste.

Dim ligne& <- variable à déclarer dans le bouton Valider

With Feuil2
ligne = Application.Match(Num_Demande, .Columns(1), 0)
.Cells(ligne, 2) = Contrôle x
.Cells(ligne, 3) = Contrôle y
.Cells(ligne, 4) = Contrôle z
End with
 

youky(BJ)

XLDnaute Barbatruc
Bonjour Loul,
Lone_wolf salut l'ami,
Juste pour dire qu'il faut faire attention avec le Control DTPicker qui n'est disponible que si l'on dispose d'Access
Ce qui n'est pas mon cas et je suis bloqué avec ton fichier, il existe de nombreux exemple de dateur identique et fait maison sur le forum qui fonctionne quel que soit la version.
Controle x,y z est le nom de tes controls
Bruno
 

youky(BJ)

XLDnaute Barbatruc
Ca va pas être facile
Le mieux est de ne pas nommer les controls
For k= 1 to 10
feuil2.cells(k,lig)=me.controls("ComboBox" & k)
next
Ces 3 lignes remplissent 10 colonnes avec les valeurs des 10 controls

Bruno
VB:
Private Sub Num_demande_Change()
lig = Application.Match(Val(Num_demande), Feuil2.[A1:A65000], 0)
If Not IsNumeric(lig) Then
'il faudrait mettre à zéro les controls
Exit Sub
Else
Num_tracteur = Feuil2.Cells(lig, 4)
Num_citerne = Feuil2.Cells(lig, 5)
'et tous tes autres controls ici 4 est la colonne D
End If
End Sub


Private Sub Valider_Click()
lig = Application.Match(Val(Num_demande), Feuil2.[A1:A65000], 0)
Feuil2.Cells(lig, 9) = Val(Km) 'valeur en numeric et non en text
'et tous tes autres controls ici 9 est la colonne i
End Sub
 

loul03

XLDnaute Occasionnel
Bonjour youky

j'ai l'erreur 1004 'erreur définie par l'objet ou l'application' qui s'affiche quand je mets:

Private Sub Valider_Click()
For k = 1 To 10
Feuil2.Cells(k, lig) = Me.Controls("ComboBox" & k)
Next

lig = Application.Match(Val(Num_demande), Feuil2.[A1:A65000], 0)
Feuil2.Cells(lig, 9) = Val(Km)
Feuil2.Cells(lig, 10) = Val(Num_tracteur) 'valeur en numeric et non en text
'et tous tes autres controls ici 9 est la colonne i

End Sub

du coup je suis bloquée...
j'ai pourtant renommer mes combobox de combobox1 à 10

une idée peut être??

par avance merci bien
 

Lone-wolf

XLDnaute Barbatruc
Bonjour loul, Bruno :)

VB:
Private Sub Valider_Click()
With Feuil2
lig = Application.Match(Num_demande, .Columns(1), 0)
For k = 1 To 10
.Cells(lig, k) = Me.Controls("ComboBox" & k)
Next i
End With
End Sub

Il n'y a pas besoin de mettre les autres lignes (.Cells(lig, 9) etc.), puisque tu part de la colonne A à la colonne J. Le k dans la boucle, représente le nombre de colonnes. Et si tu t'arrête à la colonne I c'est: for k = 1 to 9.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour Bruno,

Merci de t'être penché sur mon problème. Si tu veux la modifier avec une listbox, vas-y sans autre. Je pense aussi que cela vient des versions d'Excel et je suis sur Win 10 64bits, à moins de dire une bétise.

EDIT: je viens de rentrer un chiffre dans km au compteur dans le fichier de loul, le nombre s'inscrit dans la colonne Date de saisie. .Cells(lig, 9) à modifier par .Cells(lig, 13)
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
534

Statistiques des forums

Discussions
314 017
Messages
2 104 581
Membres
109 082
dernier inscrit
Narlock