Problème recherche contenu TextBox Excel
Résolu
coudu
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j’ai besoin d’un coup de main….
J’ai créé un userform qui me sert à enregistrer tous les licenciés de sport de ma commune. Dans l’userform j’ai un combobox. Il me permet de choisir entre plusieurs sports.(foot, hand,…). En fait cela me sert à envoyer les infos que je vais enregistrées dans les textbox en dessous du combobox dans les feuilles du classeur Excel nommées hand, foot…En bas du userform j’ai un bouton de commande qui me permet d’enregistrer ces valeurs des textbox dans les feuilles Excel appropriées. Mon programme fonctionne, lorsque je clique sur enregistré, il cherche la première ligne vide pour enregistrer. Le souci c’est que j’aimerais qu’il cherche si le numéro de licence à déjà été enregistré. Et si oui, qu’il réenregistre les nouvelles valeurs, et non qu’il crée une nouvelle ligne.
Exemple :
If ComboBox1.Value = "foot" Then
Sheets("foot ").Range("a65536").End(xlUp).Offset(1, 0) = TextBox48.Value
Sheets("foot").Range("b65536").End(xlUp).Offset(1, 0) = TextBox49.Value
Sheets("foot").Range("c65536").End(xlUp).Offset(1, 0) = TextBox50.Value
Sheets("foot ").Range("d65536").End(xlUp).Offset(1, 0) = TextBox52.Value
'Sheets("foot ").Range("e65536").End(xlUp).Offset(1, 0) = TextBox51.Value
Sheets("foot ").Range("f65536").End(xlUp).Offset(1, 0) = TextBox53.Value
Sheets("foot ").Range("p65536").End(xlUp).Offset(1, 0) = TextBox54.Value
Sheets("foot ").Range("i65536").End(xlUp).Offset(1, 0) = TextBox55.Value
Sheets("foot ").Range("j65536").End(xlUp).Offset(1, 0) = TextBox56.Value
Sheets("foot ").Range("o65536").End(xlUp).Offset(1, 0) = TextBox57.Value
End If
Merci
j’ai besoin d’un coup de main….
J’ai créé un userform qui me sert à enregistrer tous les licenciés de sport de ma commune. Dans l’userform j’ai un combobox. Il me permet de choisir entre plusieurs sports.(foot, hand,…). En fait cela me sert à envoyer les infos que je vais enregistrées dans les textbox en dessous du combobox dans les feuilles du classeur Excel nommées hand, foot…En bas du userform j’ai un bouton de commande qui me permet d’enregistrer ces valeurs des textbox dans les feuilles Excel appropriées. Mon programme fonctionne, lorsque je clique sur enregistré, il cherche la première ligne vide pour enregistrer. Le souci c’est que j’aimerais qu’il cherche si le numéro de licence à déjà été enregistré. Et si oui, qu’il réenregistre les nouvelles valeurs, et non qu’il crée une nouvelle ligne.
Exemple :
If ComboBox1.Value = "foot" Then
Sheets("foot ").Range("a65536").End(xlUp).Offset(1, 0) = TextBox48.Value
Sheets("foot").Range("b65536").End(xlUp).Offset(1, 0) = TextBox49.Value
Sheets("foot").Range("c65536").End(xlUp).Offset(1, 0) = TextBox50.Value
Sheets("foot ").Range("d65536").End(xlUp).Offset(1, 0) = TextBox52.Value
'Sheets("foot ").Range("e65536").End(xlUp).Offset(1, 0) = TextBox51.Value
Sheets("foot ").Range("f65536").End(xlUp).Offset(1, 0) = TextBox53.Value
Sheets("foot ").Range("p65536").End(xlUp).Offset(1, 0) = TextBox54.Value
Sheets("foot ").Range("i65536").End(xlUp).Offset(1, 0) = TextBox55.Value
Sheets("foot ").Range("j65536").End(xlUp).Offset(1, 0) = TextBox56.Value
Sheets("foot ").Range("o65536").End(xlUp).Offset(1, 0) = TextBox57.Value
End If
Merci
Configuration: Windows 2000 Internet Explorer 6.0
8 réponses
-
Salut,
Ton numéro de licence apparait ou? Dans une combobox? un textBox? si oui le(a)quel(le)?
EDIT : merci de mettre à tes sujets, des noms plus appropriés à tes problèmes. Exemple ici : Problème recherche contenu TextBox Excel -
Salut,
Prenons l'exemple avec "foot". Essaye d'abord sur une copie de ton classeur...
Dim cherche as Integer Dim val as String, val2 as String val = TextBox(N°_de_licence).Value If ComboBox1.Value = "foot" Then With Worksheets("foot") On Error Resume Next 'la seule erreur que je vois c'est l'absence du n° de licence. Dans ce cas il y a un test après cherche = .Columns(2).Find(val, LookIn:=xlValues).Row If cherche = 0 Then 'ici le test si N° pas encore enregistré 'ici j'ai inséré une msgbox pour laisser un choix à l'utilisateur val2 = MsgBox("N° de licence inconnu dans la base. Voulez vous l'enregistrer?", vbYesNo) If val2 = vbNo Then Exit Sub cherche = .Range("a65536").End(xlUp).Offset(1, 0).Row End If .Range("A" & cherche) = TextBox48.Value .Range("B" & cherche) = TextBox49.Value .Range("C" & cherche) = TextBox50.Value .Range("D" & cherche) = TextBox52.Value '.Range("E" & cherche) = TextBox51.Value .Range("F" & cherche) = TextBox53.Value .Range("P" & cherche) = TextBox54.Value .Range("I" & cherche) = TextBox55.Value .Range("J" & cherche) = TextBox56.Value .Range("O" & cherche) = TextBox57.Value End With End If
-
Si ton classeur a été bien "pensé" au départ, tu peux simplifier tes macros. J'explique.
Tu as une combobox (foot, hand...) qui permet le renvoi de valeurs textbox vers feuille. Si les noms de tes feuilles correspondent avec les valeurs de ta combo, et que les données sont rangées dans les mêmes colonnes, tu peux, plutôt que de faire :If combobox1.value = "foot" then blabla end if if combobox1.value = "hand" then bloblo end if
tu créées une variable string à laquelle tu affectes la valeur de ta combo et :
Dim valcomb as String valcomb = ComboBox1.Value With Sheets(valcomb) .Range("A" & cherche) = TextBox48.Value .Range("B" & cherche) = TextBox49.Value .Range("C" & cherche) = TextBox50.Value .Range("D" & cherche) = TextBox52.Value '.Range("E" & cherche) = TextBox51.Value .Range("F" & cherche) = TextBox53.Value .Range("P" & cherche) = TextBox54.Value .Range("I" & cherche) = TextBox55.Value .Range("J" & cherche) = TextBox56.Value .Range("O" & cherche) = TextBox57.Value End With
-
Salut, en fait mon programme est comme tu explique à la fin. Ce que j’aimerais c’est que si je suis dans l’onglet nouvelle licence, que je choisi dans la combo box « foot » , et qu’ensuite je rentre le numéro de licence dans la textbox appropriée, les autres infos dans leur textbox respectives. Et lorsque je valide on me dise que ce numéro de licence (rangé dans la colonne A de la feuille « foot ») existe déjà licence et donc alors on écrase celle qui existait pour enregistrer les nouvelles infos au lieu de créer une nouvelle ligne dans ma feuille Excel. Parce que sinon le jour ou je chercherai une licence, si elle est inscrite deux foi j’aurais pas les infos que je souhaite.
Merci pour ton aide -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
Normalement, mon code au post 3 fais tout ça.
Je vais le tester car pas encore fait. -
Bon j'ai créé ce fichier de test, regarde le et dit moi si cela te va?
https://www.cjoint.com/?bukWc6PCr6
ps : si tu arrives à avoir ces joueurs dans les équipes de ta ville, je déménage!! -
-
Salut,
dis dans mon userform j'ai plusieurs onglets:
Comment puis je faire pour que l'onglet séléctionner soit diférents des autres quand il est selectionné?
Merci