Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

jennalex

XLDnaute Nouveau
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
 

Pierrot93

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

Bonjour,

sans doute qu'un petit fichier montrant uniquement le problème posé et résultat attendu nous aiderait à t'aider...

bonne journée
@+
 

jennalex

XLDnaute Nouveau
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
    4.1 KB · Affichages: 70
  • Sans titre.png
    4.1 KB · Affichages: 67
  • Sans titre.png
    4.1 KB · Affichages: 71

Robert

XLDnaute Barbatruc
Repose en paix
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
 

jennalex

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

Je vous envoie le fichier
 

Pièces jointes

  • Base de Données ESSAIS.xlsm
    112.8 KB · Affichages: 71
  • Base de Données ESSAIS.xlsm
    112.8 KB · Affichages: 70
  • Base de Données ESSAIS.xlsm
    112.8 KB · Affichages: 77

jennalex

XLDnaute Nouveau
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

  • Base de Données ESSAIS.xlsm
    115.1 KB · Affichages: 78
  • Base de Données ESSAIS.xlsm
    115.1 KB · Affichages: 75
  • Base de Données ESSAIS.xlsm
    115.1 KB · Affichages: 74
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…