Compter le nombre de cellules vides dans une selection

Bonjour a tous,

Voilà, j'ai un soucis, je cherche à compter le nombre de cellules non vides dans la plage allant de F11 jusqu'au moment il n'y plus que des cases vides mais en restant sur la ligne 11.

pour le moment j'ai écris ca:

Union(Range("E5"), Range("H23"), Range("M22"), Range("Y9")).Select Je selectionne les cellules à copier dans un autre fichier

For Each cell In Selection 'boucle

cell.Copy 'on copie chaque cellule de la boucle

wbdest.Activate 'on active la feuille ou l'on va coller les cellules

i = Application.WorksheetFunction.CountA.Range((Cells(11 + j, 5).End(xlLeft).Column)) 'on compte le nombre de cellules non vides à partir de F11+j jusque F1000+j

Cells(11 + j, 5 + i).Select 'on sélectionne une par une les cellules ou l'on va coller

ActiveSheet.Paste 'paste the data 'on colle

Next cell fin de boucle

Selection.EntireColumn.AutoFit

wbsource.Close 'close the current source file on ferme le fichier cible

fichier = Dir 'go to next file in the directory on ouvre le suivant

j = j + 1 increment de j

Loop on boucle pour copier le prochain document

je n'ai pas mis tout le code pour pas vous embrouiller.

Le but est d'ouvrir tout les fichiers excel d'un dossier, de copier les cellules E5, H23, M22 et Y9 et de les coller dans mon fichier excel sur une ligne à partir de F11. on chnage donc de colonne pour chaque nouvelle cellule à coller (d'où la variable i)

A chque nouveau fichier excel ouvert, on change de ligne (d'où la variable j).

Mon problème se situe sur le calcul de la variable i, cette ligne bug et je ne comprends pas pourquoi. (surlignée en vert)

Quelqu'un a t'il une idée svp?

Bonjour,

Tu peux tester l'instruction suivante :

i = Application.WorksheetFunction.CountBlank(Range(Cells(11 + j, 5), Cells(11 + j, 5).End(xlLeft).Column))

Oui mais là, tu comptes les cellules vides non?

C'est exactement l'inverse que je voudrais faire. Alors, j'utilise ta fonction et je la soustraie au nombre de cellules totales dans le range?

Re,

Désolé

Je ne sais pas pourquoi je t'ai donné l'exemple avec countblank ....

(en même temps ...c'est peut-être le titre ...)

Tu peux utiliser counta ... Le problème se situe à l'intérieur de ta formule ... dans laquelle pour définir une plage, il te faut un début et une fin ...

J'ai essayé avec la fonction COUNTA

Application.WorksheetFunction.CountA.Range(Cells(11 + j, 5), (Cells(11 + j, 1000).End(xlLeft).Column))

Il me répond "counta: argument non facultatif", ça veut dire quoi?

Re,

i = Application.WorksheetFunction.CountA(Cells(11 + j, 5), Cells(11 + j, 1000).End(xlLeft).Column)

Je veux pas être chiant, mais le deboguage refuse toujours la ligne.

Je pense que le problème vient du range défini avec des formule cells, je n'ai jamais réussi à mélanger Range et cells.

Re,

Du coup, je viens de tester à vide ...

i = Application.WorksheetFunction.CountA(Range(Cells(11 + j, 5), Cells(11 + j, 1000)))

Ça marche, merci.

je vais essayer d'y intégrer la fonction end (défi perso). je refais un post si j'y arrive.

voilà, j'y suis arrivé

Application.WorksheetFunction.CountA(Cells(11 + j, 5).End(xlToRight).Column)

tout simplement

Content que tu aies trouvé la solution ...

Rechercher des sujets similaires à "compter nombre vides selection"