Excel et VBA NB.VIDE
Résolu
Bonjour,
Petite question vite fait, quel code, si il y en a un, utiliser pour remplacer la formule NB.VIDE ? ?
Merci pour votre aide
--
MERCI A CCM à déclarer source d'intéret public . .. .. pensez à marquer vos topic résolus quand c'est le cas .. . . .Merci
Petite question vite fait, quel code, si il y en a un, utiliser pour remplacer la formule NB.VIDE ? ?
Merci pour votre aide
--
MERCI A CCM à déclarer source d'intéret public . .. .. pensez à marquer vos topic résolus quand c'est le cas .. . . .Merci
Configuration: asus P5V800 / P4 2,8 Ghz / 1,5 Go Windows XP FireFox / IE 7
32 réponses
Résumé de la discussion
La problématique porte sur remplacer NB.VIDE dans Excel par une solution de code afin de compter les cellules vides d'une plage et d'automatiser le calcul. Des approches mixtes émergent, avec une utilisation en cellule comme NB.VIDE(A1:A999), et des variantes VBA qui écrivent COUNTBLANK dans une cellule via FormuleR1C1 ou dans une plage. D'autres expliquent une macro dédiée (nbvide) calculant le nombre de cellules vides sur A1:A999 ou sur une plage déterminée par End(xlUp) et SpecialCells pour le résultat dans une cellule. En cas de précisions, les échanges signalent que la méthode VBA peut nécessiter l'enregistrement du classeur et que la plage peut varier selon les versions d'Excel.
-
bien joué moiced59 je ne peux rien ajouter à part ya main là ! ! ! ! lol
-
pour conclure je pense:
compter le nombre de cellule a blanc
Z = Worksheets(1).Range("A1:A10").Cells.SpecialCells(xlCellTypeBlanks).Count
compter le nombre de cellule non a blanc
y = Worksheets(1).Range("A1:A10").Cells.SpecialCells(xlCellTypeConstants).Count
autre methode pr compter le nbre de cellule a blanc
w = WorksheetFunction.CountBlank(Range("A1:A10")) -
mdr
-
lol mais je n'ai aucune colonne sans blanc ;) donc elle marche ;)) quand meme pour une fois que les choses tombent bien hein lol ça va pas souvent comme on veut mais là si alors tout vas bien enfin bref ça marche c'est cool les 2 marche c'est gagné et sans la main . . ..
-
non la 1ere ne fonctionne pas essai sur une colonne ou tu na que d blancs!!!
-
oui ok c'est ce que je disai ouai les 2 marche ;) la tienne evite l'opération - encore un peu de memoire economisée ;))
-
z = Worksheets(2).Range("A1:A999").Cells.SpecialCells(xlCellTypeBlanks).Count
z = nombre de cellule vide -
euuuh mouai mais is je fais 999-ton type blank le résultat sera le nombre de cellule pleine ou est ce que ça,ça marche:
z = Worksheets(2).Range("A1:A999").Cells.SpecialCells(xlCellTypeBlanks).Count
???
-
re re et re lol
je viens de tester en effet le resultat est le meme mais pour t besoin c bien xlCellTypeBlanks qui compte le nbre de cellule vide
bon probleme resolu c le principal!!! -
ah non pas trompé du tout je viens de tester et ça marhce au poil j'ai du déclaré 24 variable lol mais ca marche tip top je voulais bien les cellules vide oui mais comme je connais mon nombre max de ligne si je fais nombre max de ligne - cellule pleine ça me donne les cellules vide ;) comme l'a expliqué pijaku . . .
Merci pijaku et moiced59 -
tu ne t pas tromper ds ton
xlCellTypeConstants
tu voulais les cellules vide?
xlCellTypeBlanks -
bon à force de me botter les fesse et d'utiliser F1, reflex bien long à venir je viens de tester pas mal de synthaxe et c'est bon la ligne toute simple de pijaku marhce j'ai bien fais de percevéré dans cette direction voilà tel qu'elle marche:
z = 999 - Worksheets(2).Range("A1:A999").Cells.SpecialCells(xlCellTypeConstants).Count
donc le sheets("Feuil2") ben mon excel en veut pas par contre le worksheets(2) lui va bien
pfiiiiouuuu ben ca été dur mais cette fois résolue je laisse donc résolue ce post pour le reste de mes souci je vous ai ecrit un post que je pense etre clair donc je l'ouvre et espère vous revoir là bas
merci à tous
-
ok bon alors j'attend de voir ça pour ce qui est de ta derniere proposition sur ce pot çi nbvide ça me fait les meme erreur que l'autre .. .décidement . . .pour le post sur le triage commme je l'ai dis je viens de le faire manuelement et donc n'aurai plu besoin de le faire. pour mon projet je vais prendre le temps de vous rédiger un truc le plus clair possible et ce soir eventuelement envoyer le fichier
-
euuuh par contre j'ai pas de post de Michel_m . . . .enfin je ne le vois pas dans le sujet ou l'on parle depuis hier. . .. .
-
ouaip pijaku je sais là je suis un peu parti en sucette et dans tous les sens . . ..je vais essayer de recadrer tous ça excusez moi les gars je vous aide pas beaucoup :s je vais me ressaisir
-
ok je pense qu il faudrais que tu aille chercher la derniere cellule ecrite et que ensuite tu te serve de celle ci pr ta formule
-
ModérateurOui il y a effectivement deux solutions. Soit passer par une formule dans une cellule (la dernière ou une autre peu importe), soit passer directement en VBA par un simple calcul : nbre de cell total - nbre de cell non vide. Informatifien semble donner la préférence à cette deuxième méthode, finalisons là.
Attention au code que j'ai donné plus haut :Sub nbvide() Dim z As Long Dim derlig As Integer derlig = Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0).Row z = derlig - Sheets("Feuil1").Range("A1:A" & derlig).Cells.SpecialCells(xlCellTypeConstants).Count End Sub
Il me semble que la partie en gras ne fonctionne qu'une fois ou nécessite l'enregistrement du classeur au préalable. Donc :
Sub nbvide() Dim z As Long Dim derlig As Integer derlig = Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0).Row ActiveWorkbook.Save z = derlig - Sheets("Feuil1").Range("A1:A" & derlig).Cells.SpecialCells(xlCellTypeConstants).Count End Sub
-
-
de A1 à A999 oui mais ce nombre sera variable car les trous "bouchés" au fur et à mesure je m'explique ça vous paraitra plus claire les liste ont ete remplis sur plusieurs année mais des numéros ont été sautés j'ai fais un premier tri pour séparer les series, ce que je veux pouvoir faire au final c'est dans un premier temps insérer des cellule entres les nombres qui ne se suivent pas genre 8523-8525 il n'as pas été utilisé le 8524 je veux donc à cette endroit insérer une cellule et ainsi de suite ensuite il faudra evidemment compter le nombre de "trous" excusez mon langage lol pour savoir dans quel seriei utiliser des numéro . . .
-
ModérateurEssaie ceci :
Sub nbvide() Dim z As Long Dim derlig As Integer derlig = Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0).Row z = derlig - Sheets("Feuil1").Range("A1:A" & derlig).Cells.SpecialCells(xlCellTypeConstants).Count End Sub
Tu sais, si tu nous demandais ce que tu désires de manière plus complète, peut être existe t'il une méthode plus globale pour réaliser ton fichier. D'ailleurs, sur ton sujet "macro excel triage..." Michel_m te présente une solution fort utile qui pourrait être la base d'un nouveau départ pour ce sujet ici......
-
-
Je viens de relire le tuto la formule que tu recherche né pas du tout celle ci en plus cette formule est dynamique toi tu veux le nombre de blanc de A1 a A99
-
RE
La formule de pijaku reviens exactement au meme a la seule difference que tu integre la formule ds la celule active et non une cellule prealablement choisie -
ouai je suis daccord mais c'est moins economique d'un point de vue mémoire .. . .et là ben je voudrai comprendre pourquoi la ligne de code toute simple de pijaku ne marche pas :( par qu'il faut avouer que c'est le code le plus simple qu'on m'ai proposé. . .sinon oui j'utiliserai le tiens moiced59
- 1
- 2
Suivant