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

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 :

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 ...
 

Pièces jointes

  • management Dd - Copie.xlsm
    283 KB · Affichages: 74

Discussions similaires

Réponses
7
Affichages
329
Réponses
12
Affichages
542
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…