Dans une fonction VBA je fais i=1 while cells(i,1) <> "" i=i+1 wend nblig=i-1
pour calculer le nombre de lignes.
Jusque là, pas de problème, tout fonctionne :-)
Ensuite je veux faire un calcul sur une plage que je définis avec ce nblig, et c'est là que ça merdouille :
dim c as range for each c in activesheet.range(plage_de_cellules définie) c="COUNTIF(RC:R[nblig]C;"valeur cherchée") next c
Il ne comprend pas l'appel à nblig car si je le remplace par un vrai numéro de ligne tout fonctionne... Comment dois-je l'écrire pour que ça marche ?
Merci d'avance pour votre aide
Gillou
papou
Bonjour D'abord ta méthode pour définir la dernière ligne n'est pas forcément la meilleure. Il existe plusieurs méthodes, perso j'utilise plutôt : Range("A65536").end(xlup).row mais d'autres te fourniront d'autres méthodes. Ensuite, si tu veux récupérer la valeur de ta variable dans une formule, il te faut utiliser la concaténation donc avec quelquechose comme ça par exemple : "R1C1:R" & nblig & "C1"
Mais vu que que je ne suis pas au "top" de la forme en ce moment je peux avoir oublié quelque chose, d'autres contributeurs sauront me corriger dans ce cas ;-)
Cordialement Pascal
"Gillou" a écrit dans le message de news: 431ed017$0$168$
Bonjour
Dans une fonction VBA je fais i=1 while cells(i,1) <> "" i=i+1 wend nblig=i-1
pour calculer le nombre de lignes.
Jusque là, pas de problème, tout fonctionne :-)
Ensuite je veux faire un calcul sur une plage que je définis avec ce nblig, et c'est là que ça merdouille :
dim c as range for each c in activesheet.range(plage_de_cellules définie) c="COUNTIF(RC:R[nblig]C;"valeur cherchée") next c
Il ne comprend pas l'appel à nblig car si je le remplace par un vrai numéro de ligne tout fonctionne... Comment dois-je l'écrire pour que ça marche ?
Merci d'avance pour votre aide
Gillou
Bonjour
D'abord ta méthode pour définir la dernière ligne n'est pas forcément la
meilleure.
Il existe plusieurs méthodes, perso j'utilise plutôt :
Range("A65536").end(xlup).row
mais d'autres te fourniront d'autres méthodes.
Ensuite, si tu veux récupérer la valeur de ta variable dans une formule, il
te faut utiliser la concaténation donc avec quelquechose comme ça par
exemple :
"R1C1:R" & nblig & "C1"
Mais vu que que je ne suis pas au "top" de la forme en ce moment je peux
avoir oublié quelque chose, d'autres contributeurs sauront me corriger dans
ce cas ;-)
Cordialement
Pascal
"Gillou" <gillou@moukate.com> a écrit dans le message de news:
431ed017$0$168$a3f2974a@nnrp1.numericable.fr...
Bonjour
Dans une fonction VBA je fais
i=1
while cells(i,1) <> ""
i=i+1
wend
nblig=i-1
pour calculer le nombre de lignes.
Jusque là, pas de problème, tout fonctionne :-)
Ensuite je veux faire un calcul sur une plage que je définis avec ce
nblig, et c'est là que ça merdouille :
dim c as range
for each c in activesheet.range(plage_de_cellules définie)
c="COUNTIF(RC:R[nblig]C;"valeur cherchée")
next c
Il ne comprend pas l'appel à nblig car si je le remplace par un vrai
numéro de ligne tout fonctionne... Comment dois-je l'écrire pour que ça
marche ?
Bonjour D'abord ta méthode pour définir la dernière ligne n'est pas forcément la meilleure. Il existe plusieurs méthodes, perso j'utilise plutôt : Range("A65536").end(xlup).row mais d'autres te fourniront d'autres méthodes. Ensuite, si tu veux récupérer la valeur de ta variable dans une formule, il te faut utiliser la concaténation donc avec quelquechose comme ça par exemple : "R1C1:R" & nblig & "C1"
Mais vu que que je ne suis pas au "top" de la forme en ce moment je peux avoir oublié quelque chose, d'autres contributeurs sauront me corriger dans ce cas ;-)
Cordialement Pascal
"Gillou" a écrit dans le message de news: 431ed017$0$168$
Bonjour
Dans une fonction VBA je fais i=1 while cells(i,1) <> "" i=i+1 wend nblig=i-1
pour calculer le nombre de lignes.
Jusque là, pas de problème, tout fonctionne :-)
Ensuite je veux faire un calcul sur une plage que je définis avec ce nblig, et c'est là que ça merdouille :
dim c as range for each c in activesheet.range(plage_de_cellules définie) c="COUNTIF(RC:R[nblig]C;"valeur cherchée") next c
Il ne comprend pas l'appel à nblig car si je le remplace par un vrai numéro de ligne tout fonctionne... Comment dois-je l'écrire pour que ça marche ?
Merci d'avance pour votre aide
Gillou
Gillou
c="COUNTIF(RC:R[" & nblig &"]C;valeur_cherchée)"
C'est bon ça marche ! Merci !
Par contre pour obtenir un taux je fais maintenant : c="COUNTIF(RC:R[" & nblig &"]C;valeur_cherchée)/" & nb_CF & " " où nb_CF est un nombre défini plus haut dans la fonction.
Cette fois-ci ça ne marche plus, je me doute bien qu'il considère mon 1er guillement de " & nb_CF & " comme la fermeture du tout premier, et donc après il est perdu. Mais comment faire du coup ?
Et puis une question subsidiaire pour finir :-) plutôt que de conserver la valeur de la formule dans la cellule, je veux simplement avoir le résultat. Bourrinement, je peux faire un copier-coller des valeurs dans la suite de ma macro, mais j'imagine quand même qu'il y a plus simple : quelque chose pour lui dire de conserver uniquement la valeur ?
Merci !
c="COUNTIF(RC:R[" & nblig &"]C;valeur_cherchée)"
C'est bon ça marche ! Merci !
Par contre pour obtenir un taux je fais maintenant :
c="COUNTIF(RC:R[" & nblig &"]C;valeur_cherchée)/" & nb_CF & " "
où nb_CF est un nombre défini plus haut dans la fonction.
Cette fois-ci ça ne marche plus, je me doute bien qu'il considère mon 1er
guillement de " & nb_CF & " comme la fermeture du tout premier, et donc après
il est perdu. Mais comment faire du coup ?
Et puis une question subsidiaire pour finir :-)
plutôt que de conserver la valeur de la formule dans la cellule, je veux
simplement avoir le résultat. Bourrinement, je peux faire un copier-coller
des valeurs dans la suite de ma macro, mais j'imagine quand même qu'il y a
plus simple : quelque chose pour lui dire de conserver uniquement la valeur ?
Par contre pour obtenir un taux je fais maintenant : c="COUNTIF(RC:R[" & nblig &"]C;valeur_cherchée)/" & nb_CF & " " où nb_CF est un nombre défini plus haut dans la fonction.
Cette fois-ci ça ne marche plus, je me doute bien qu'il considère mon 1er guillement de " & nb_CF & " comme la fermeture du tout premier, et donc après il est perdu. Mais comment faire du coup ?
Et puis une question subsidiaire pour finir :-) plutôt que de conserver la valeur de la formule dans la cellule, je veux simplement avoir le résultat. Bourrinement, je peux faire un copier-coller des valeurs dans la suite de ma macro, mais j'imagine quand même qu'il y a plus simple : quelque chose pour lui dire de conserver uniquement la valeur ?
Merci !
Gillou
Merci pour ta réponse. En ce qui concerne le nombre de ligne, il y a en fait un bloc de lignes dans mon fichier puis un espace puis d'autres lignes, et ma méthode me permet de déterminer le nombre de lignes du 1er bloc, et c'est ce que je veux. J'imagine qu'avec ta méthode ça renvoie le nombre total ?
Merci pour ta réponse. En ce qui concerne le nombre de ligne, il y a en fait
un bloc de lignes dans mon fichier puis un espace puis d'autres lignes, et ma
méthode me permet de déterminer le nombre de lignes du 1er bloc, et c'est ce
que je veux. J'imagine qu'avec ta méthode ça renvoie le nombre total ?
Merci pour ta réponse. En ce qui concerne le nombre de ligne, il y a en fait un bloc de lignes dans mon fichier puis un espace puis d'autres lignes, et ma méthode me permet de déterminer le nombre de lignes du 1er bloc, et c'est ce que je veux. J'imagine qu'avec ta méthode ça renvoie le nombre total ?
Par contre pour obtenir un taux je fais maintenant : c="COUNTIF(RC:R[" & nblig &"]C;valeur_cherchée)/" & nb_CF & " " où nb_CF est un nombre défini plus haut dans la fonction.
Cette fois-ci ça ne marche plus, je me doute bien qu'il considère mon 1er guillement de " & nb_CF & " comme la fermeture du tout premier, et donc après il est perdu. Mais comment faire du coup ?
Et puis une question subsidiaire pour finir :-) plutôt que de conserver la valeur de la formule dans la cellule, je veux simplement avoir le résultat. Bourrinement, je peux faire un copier-coller des valeurs dans la suite de ma macro, mais j'imagine quand même qu'il y a plus simple : quelque chose pour lui dire de conserver uniquement la valeur ?
Par contre pour obtenir un taux je fais maintenant :
c="COUNTIF(RC:R[" & nblig &"]C;valeur_cherchée)/" & nb_CF & " "
où nb_CF est un nombre défini plus haut dans la fonction.
Cette fois-ci ça ne marche plus, je me doute bien qu'il considère mon 1er
guillement de " & nb_CF & " comme la fermeture du tout premier, et donc après
il est perdu. Mais comment faire du coup ?
Et puis une question subsidiaire pour finir :-)
plutôt que de conserver la valeur de la formule dans la cellule, je veux
simplement avoir le résultat. Bourrinement, je peux faire un copier-coller
des valeurs dans la suite de ma macro, mais j'imagine quand même qu'il y a
plus simple : quelque chose pour lui dire de conserver uniquement la valeur ?
Par contre pour obtenir un taux je fais maintenant : c="COUNTIF(RC:R[" & nblig &"]C;valeur_cherchée)/" & nb_CF & " " où nb_CF est un nombre défini plus haut dans la fonction.
Cette fois-ci ça ne marche plus, je me doute bien qu'il considère mon 1er guillement de " & nb_CF & " comme la fermeture du tout premier, et donc après il est perdu. Mais comment faire du coup ?
Et puis une question subsidiaire pour finir :-) plutôt que de conserver la valeur de la formule dans la cellule, je veux simplement avoir le résultat. Bourrinement, je peux faire un copier-coller des valeurs dans la suite de ma macro, mais j'imagine quand même qu'il y a plus simple : quelque chose pour lui dire de conserver uniquement la valeur ?