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

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 !

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

- 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

Discussions similaires

Réponses
5
Affichages
477
Réponses
10
Affichages
825
Réponses
7
Affichages
619
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…