Compter le nombre de cellules non vides dans une plage de colonnes variables

debidebo67

XLDnaute Nouveau
Bonjour,

Je m'adresse aux experts VBA, je n'arrive pas à trouver la solution depuis 2 jours :confused: :

contexte : Useform avec un multipage qui se rempli tt seul...en créant des checkbox(1 à X) à partir de la pages(1) (la 0 est une page d'accueil) puis recopie le caption des chexbox cochés dans un tableau

Dysfonctionnement : mes variables début et nbr sont fausses : leur n° doit correspondre au 1er numéro et au dernier des Chexckbox(x) à Chexckbox(y) en fonction le la pages(n) du multipage1 : .je n'arrive pas à lui faire compter le nombre de cellules non vide dans une plage de colonnes: il ne comprend pas problème la syntaxe !

j'ai essayer plusieurs solutions comme vous pouvez le constater plus bas :

Voici le code :

Private Sub CommandButtonRésultat_Personnalité_Click()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'copie des caractéristiques coché
Dim début As Integer, nbr, f, dernier
Dim y As String

dernier = Sheets("Plages_Nommées").Range("D65536").End(xlUp).Row

For n = 1 To dernier - 1
With UserForm1.MultiPage1.Pages(n)
u = 2

If n = 1 Then
début = 1
nbr = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Columns(u)) - 1

ElseIf n = 2 Then
début = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range(Columns(u) + ":" + Columns(n + 1))) - (1 * n)
nbr = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range(Columns(u) + ":" + Columns(n))) - (1 * n)
'début = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Columns(u, n + 1)) - (1 * n)
'début = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range("$" & u & ":" & "$" & n + 1)) - (1 * n)
'nbr = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range("$" & u & ":" & "$" & n)) - (1 * n)
'nbr = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Columns(u, n)) - (1 * n)

Else

début = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range(Columns(u), Columns(n))) - (1 * n - 1)
nbr = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range(Columns(u), Columns(n + 1))) - (1 * n)

'début = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range("$" & u & ":" & "$" & n)) - (1 * n - 1)
'nbr = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range("$" & u & ":" & "$" & n + 1)) - (1 * n)

'debut = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range(u & ":" & n - 1)) - 1 * n
'nbr = Application.WorksheetFunction.CountA(Sheets("Caractéristiques_Catégories").Range(u & ":" & n)) - 1 * n

End If



For f = début To nbr
If .Controls("CheckBox" & f) Then
y = Controls("CheckBox" & f).Caption 'extraire le caption
Sheets("Résultat_Personnalité").Cells(100000, 4).End(xlUp).Offset(1, 0).Value = y
End If

Next f
End With
Next n

Unload Me
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

Merci à ceux qui voudront bien m'aider ...:D
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas