Afficher la suite

Bonjour à tout le forum,

dans le fichier ci-joint je souhaiterai avoir ce qui suit;

lorsque j’appelle le UserForm1 depuis l’onglet Feuil1, j’aimerai qu’il m’affiche dans le textbox la suite de la colonne " complet " de l’onglet Feuil2.

C’est à dire : actuellement il y a les inscriptions qui vont de élève A à élève F.
Donc j’aimerai qu’il me donne dans le textbox " élève G ".
Donc toujours me donner la lettre suivante disponible.

J’espère avoir bien expliqué mon souhait.

Merci d’avance à vous.

Cordialement, Rubis
Rubis57 suite.xlsm (16,9 Ko)

Sub usf()
     Dim s, i, Arr, r
     For i = 1 To 26
          s = s & Chr(64 + i)                'chaîe avec les 26 lettres
     Next
     Arr = Range("Tabel1[Référence]").Value2     'colonne avec vos références (avec un TS)
     For i = 1 To UBound(Arr)
          r = InStr(1, s, Arr(i, 1), 0)
          If r > 0 Then Mid(s, r, 1) = " "   'remplacer lettres existants avec un espace
     Next
     s = Application.Trim(s)                 'supprimer les espaces
     If Len(s) = 0 Then
          MsgBox "on a eu tous les lettres"
     Else
          UserForm1.TextBox1.Text = "élève " & Left(s, 1)     'premier lettre sans les espaces
          UserForm1.Show
     End If
End Sub

Rubis57 suite.xlsm (18,8 Ko)

PS; la macro ici dessus est plus récente que celle dans la PJ

1 « J'aime »

Bonjour,
code limité aux 26 lettres majuscules, et sous conditions qu’une référence soit déjà présente.
Mais pour répondre stricto sensu à la question :

Private Sub UserForm_Initialize()
Dim Cel As Range
With Feuil2
    Set Cel = .Cells(.Cells(Rows.Count, "C").End(xlUp).Row, "C")
    Me.TextBox1 = Cel.Offset(, -1) & " " & Chr(Asc(Cel) + 1)
End With
End Sub

Bonne journée
Edit, Hello Bart

Bonjour Bart,

Merci pour ta proposition.
Alors ton fichier que tu m’as retourné fonctionne, par contre ci je place ton code dans mon fichier réel, cela ne fonctionne plus. C’est sûr, mon tableau est en réel plus large mais cela ne devrait pas être le problème ou je me trompe ?

voici un modèle pour te montrer comment mon tableau réel est placé.
Rubis57 ne fonctionne pas.xlsm (24,8 Ko)

Merci pour le retour.

Rubis

Bonjour Cousinhub,

Merci pour ta participation mais j’ai le même soucis qu’avec celle de Bart elle me donne toujours l’élève A. J’attends le retour de sa proposition et on verra.
En attendant, Merci.
A +.

Cordialement, Rubis

Re-,
A partir du dernier fichier

Sub usf()
Dim TS As ListObject
Set TS = Blad1.ListObjects(1)
UserForm1.TextBox1 = "Salarié " & Chr(Asc(TS.ListColumns("Référence 2").DataBodyRange(TS.ListRows.Count)) + 1)
UserForm1.Show
End Sub
1 « J'aime »

Re,

Cela cela fonctionne comme souhaité :+1: .
Merci à toi pour ton travail.

A une prochaine fois.
Rubis