fonction offset sous vba/excel

fonction offset sous vba/excel - VB/VBA/VBS - Programmation

Marsh Posté le 27-09-2010 à 17:55:29    

Bonsoir,
 
je souhaiterais créer une fonction excel a l'aide de vba mais la je cale un peu donc je vous expose mon problème.
 
J'ai une colonne dans laquelle seule une case sur 9 est remplie. Initialement elles sont toutes remplies de 0 et chaque semaine je rentre un nombre en allant du haut vers le bas. Je voudrais pouvoir créer un fonction qui me renvoie directement la valeur différente de 0 rentrée en dernier.
 
Je sais qu'il faut que j'utilise un DO WHILE LOOP et quelque chose comme .OFFSET(9,0) pour envoyer à la case suivante  mais je sais pas bien comment.
 
Si vous avez des idées, cela me serait d'un grand secour.
 
Merci beaucoup
 


---------------
I love F.A
Reply

Marsh Posté le 27-09-2010 à 17:55:29   

Reply

Marsh Posté le 28-09-2010 à 18:48:45    

Résonnes en bon français, ca viendra plus facilement...

 
Code :
  1. tu te positionnes sur ta case de départ
  2. si ta case est différente de 0
  3.      tant que tacase.offset(9,0) est différente de 0
  4.          aller sur la case suivante
  5.      fin tant que
  6. fin si
  7. renvoyer la valeur de la case actuelle.
 

De cette façon, tu verifie d'abord que la case de départ est bien différente de 0.
Si c'est le cas, tu vérifies que la case suivante est différente de 0
      si oui, tu vas à la case suivante puisque l'actuelle n'est pas la derniere
      si non, tu te situes actuellement sur la derniere case, donc tu renvoies la valeur.

 

Enfin tout ca si j'ai bien compris le probleme :)

 


Après, plus qu'à traduire en code :)


Message édité par gocho le 28-09-2010 à 18:50:45
Reply

Marsh Posté le 29-09-2010 à 16:55:01    

Ca je suis bien d'accord mais comment me positionner dans ma case?
en fait je veux faire des opération sur les coordonnées de la case que je vais rentrer comme parametre dans ma fonction et non sur ca valeur!
 
Merci qd meme


---------------
I love F.A
Reply

Marsh Posté le 30-09-2010 à 00:11:09    

ben pour aller sur une case précise, ca va etre un truc du genre

Code :
  1. range("A9" ).select
 

Après, tu peux tout à fait utiliser une variable là dedans, par exemple :

Code :
  1. range("B" & i).select
 

Libre à toi de faire varier le i comme tu le souhaites (a priori pour ton cas, de 9 en 9)
Mais je suis pas bien sûr de bien comprendre ce que tu entends par "faire des opérations sur les coordonnées de la case"...
Donne un exemple précis (et illustré ^^), ca sera plus simple :)


Message édité par gocho le 30-09-2010 à 00:14:39
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed