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

Discussions similaires


Haut Bas