Gérer deux possibilités de " Dernière ligne"

  • Initiateur de la discussion Initiateur de la discussion jennalex
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jennalex

Guest
Bonjour le forum!!!!

Je vous recontacte aujourd'hui car j'aurais besoin d'un tout petit coup de pouce.

Dans une Userform j'ai 8 checkbox "cochable". Ma dernière ligne se crée à partir du nombre de checkbox cochée inscrites dans la colonne F.

J'ai également entre 1 et 5 mots à inscrire dans la colonne A.

Dans le cas où le nombre de mot inscrit est supérieur au nombre de checkbox cochées la derniére ligne devrait se créer à partir en fonction de la colonne A.


Je ne pense pas être trés claire. Mon programme est le suivant :

''''''''''''''''''''''''''''''''' ok'''''''''''''''''''''''''''''''''''''

Private Sub CBok_Click()
Dim j As Byte

With Worksheets(1)
derlign = .Range("F65536").End(xlUp).Row + 1

''''''''''''''''''''''''''''Choix du type d'opération(s)'''''''''''''''''''''

For j = 9 To 16
If Me.Controls("CheckBox" & j) Then
.Cells(derlign, 7).Value = Me.Controls("CheckBox" & j).Caption
derlign = derlign + 1

.Cells(derlign - 1, 9).Value = TextBox1.Value 'Commentaires
.Cells(derlign - 1, 8).Value = TextBox2.Value 'Essai

''''''''''''''''''''''''''''Mots clés''''''''''''''''''''''''''''''''''''''

For x = 3 To 6

If Me.Controls("TextBox" & x) Then
.Cells(derlign, 1).Value = Me.Controls("TextBox" & x).Caption
derlign = derlign + 1
End If

Next x

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


End If
Next j
End With
End Sub


Merci d'avance!!!

Jenn
 
Re : Gérer deux possibilités de " Dernière ligne"

En fait : si j'ai par exemple 3 mots dans la colonne A et 2 dans la colonne F, la dernière ligne doit se faire selon la colonne A
derlign = .Range("A65536").End(xlUp).Row + 1


Si j'ai 2 mots dans la colonne A et 3 dans la F, la dernière ligne doit se faire selon la colonne F
derlign = .Range("F65536").End(xlUp).Row + 1

Je souhaite faire une sorte de basculement de fonction "dernière ligne".
 

Pièces jointes

  • Sans titre.png
    Sans titre.png
    4.1 KB · Affichages: 81
  • Sans titre.png
    Sans titre.png
    4.1 KB · Affichages: 78
  • Sans titre.png
    Sans titre.png
    4.1 KB · Affichages: 81
Re : Gérer deux possibilités de " Dernière ligne"

Bonjour Jennalex, Pierrot, bonjour le forum,

Du dis que tu as entre 1 et 5 mots à écrire dans la colonne A. 4 sont issu, j'imagine, des 4 textboxes 3 à 4 mais d'où vient le cinquième ??? Car il faudra commencer par comparer le nombre de mots et le nombre de case cochées avant de définir la dernière ligne. Ça donnerait un code de ce style :
Code:
Dim nt as byte 'déclare la variable nt (Nombre de Textes)
dim nc as byte 'déclare la variable nc (Nombre de Cases cochées)
 
For x = 3 to 6
     If Me.Controls("TextBox" & x).Value<>"" Then nt = nt + 1
Next x
 
For x = 9 to 16
     If Me.Controls("CheckBox" & x).Value = True Then nc = nc+1
Next x
 
With Worksheets(1)
     derlign = IIf(nc > nt, .Range("F65536").End(xlUp).Row + 1, .Range("A65536").End(xlUp).Row + 1)
End With
 
Re : Gérer deux possibilités de " Dernière ligne"

Je ne suis pas loin du but, mais les mots clés s'incrémentent! je ne comprend bien la manière dont il disfonctionne.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
738
Réponses
5
Affichages
917
Réponses
8
Affichages
398
Réponses
8
Affichages
789
Réponses
3
Affichages
924
Réponses
2
Affichages
411
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour