Bonjour à tous, je suis nouveau dans le forum et débutant en VBA. Donc pardonnez-moi par avance si je galère avec les boutons
Je viens à vous car j'ai un problème que je n'arrive pas à résoudre. J'ai créé un code permettant de compter le nombre de cases vides d'une certaine portion de mon tableau, et renvoyer ce nombre dans une cellule spécifique intégrant du texte et la variable n déclarée en Type Entier qui représente ce nombre de cases vides. Voici le code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
Sub variete_produits()
Dim i As Integer
Dim j As Integer
Dim n As Integer
For j = 5 To 20
n = 0
For i = 19 To 48
If Cells(j, i) = "" Then
n = n + 1
Cells(j, 5) = n & " / 30"
End If
Next
Next
End Sub |
Le programme passe en revue toutes les colonnes de 19 à 48 de la ligne 5, incrémente n de 1 quand il rencontre une case vide, renvoie ce nombre n de cases vides dans la cellule (5,5). Et ainsi de suite avec les lignes 6, 7 .. Jusqu'à 20.
Le programme marche très bien,
Sur ce screen, toutes les cellules de ma première ligne ( ligne 5) sont vides, et selon mon programme il est normal qu'il m'affiche "30/30"

La logique continue :

C'est pas mal tout ça ! 

MAIS 
à partir de n = 12 , la cellule pète un câble et me renvoie un entier au lieu de la forme (n "/ 30") Comme suit :

Donc tout simplement je ne comprends pas ! Si quelqu'un pourrait m'éclairer de sa science ça serait génial. 
Ah oui et j'oubliais, voici ce qui se passe dans le tableur quand je modifie le code de cette manière pour avoir non pas le nombre de cases vides mais le nombre de cases remplies , de manière à avoir 0/30 quand toutes les cases sont vides :
Cells(j, 5) = 30 - n & " / 30"
Résultat :

Voilà ...
Partager