Je travaille sur une feuille Excel de taille de ligne A: ZZ et il ne devrait y avoir que 7 cellules avec des valeurs. J'essaye de faire une sorte de "filtre" qui vérifiera le nombre de cellules non vides et dans le cas où il y aura plus de 7 cellules non vides, imprimera un message dans MsgBox (et jusqu'à ce que ce point fonctionne). Mais dans la MsgBox, je voudrais juste voir aussi les valeurs de la ligne (séparées par exemple avec coma) - ceci ne fonctionne pas en raison d'un problème de syntaxe Intersect. Voici le codeAfficher dans MSgBox toutes les valeurs non vides de la ligne
Sub blanks()
Dim a, b As Integer
a = 0
Range("A1").Select
Do
With ActiveSheet.Range(Rows(b))
b = ActiveCell.Row
a = Application.WorksheetFunction.CountA(ActiveSheet.Rows(b))
If a > 7 Then
MsgBox ("ERROR" & "/n" & Application.Intersect(.SpecialCells(xlCellTypeVisible)))
Exit Do
Else
ActiveCell.Offset(1, 0).Select
End If
End With
Loop Until ActiveCell = "stop"
End Sub
Qu'est-ce qui ne va pas?
alors qu'il ne devrait pas fonctionner (à'Avec ActiveSheet .Range (lignes (b)) 'cus' b' est '0') je suggère toujours d'utiliser' .SpecialCells (xlCellTypeVisible) .Address'. cela devrait montrer les plages qui ne sont pas vides (pas les valeurs) ... si vous avez besoin des valeurs, vous auriez besoin d'une boucle 'For Each ...' ... (pas besoin de 'Application.Intersect') du tout) –