Problème recherche contenu TextBox Excel

Résolu
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
Configuration: Windows 2000 Internet Explorer 6.0

8 réponses

  1. Modérateur
    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
    0
    1. slt, le numéro de licence est contenu dans un textbox.
      0
  2. Modérateur
    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 
    
    

    0
    1. Modérateur
      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

      0
      1. 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
        0
        1. Modérateur
          Salut,
          Normalement, mon code au post 3 fais tout ça.
          Je vais le tester car pas encore fait.
          0
          1. Modérateur
            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!!
            0
            1. super c'est bon!!! t'es une vedette, avec les vrais nom des joeurs, un vrai pro!!!!

              Merci
              0
              1. 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
                0
                1. Modérateur
                  ??? Je ne comprends pas la question... Pas réveillé, manque de café...
                  Peux tu faire une copie de ton classeur excel, le vider des données confidentielles et le joindre ici (comme je l'ai fait pour l'exemple ci dessus). Ca sera beaucoup plus explicite.
                  0