fonction ou macro excel

fonction ou macro excel - VB/VBA/VBS - Programmation

Marsh Posté le 23-08-2004 à 12:11:06    

Bonjour,  
 
Je voudrais isoler les données de la dernière cellule d’une colonne afin de les réutiliser par la suite pour une autre fonction. Bien sur, la dernière cellule de la colonne comportant des données change et évolue vers le bas au fil du temps. Une autre difficulté (enfin pour moi) est que toutes les cellules de la colonne, qu’elles indiquent ou non une donnée, comportent une fonction.  
 
Par avance, merci

Reply

Marsh Posté le 23-08-2004 à 12:11:06   

Reply

Marsh Posté le 23-08-2004 à 23:18:07    

Salut,
 
Pour trouver la dernière cellule non vide d'une colonne, voici le code VBA à utiliser :
 

Code :
  1. Dim DER As Long
  2. DER = Range("C65536" ).End(xlUp).Row
  3. MsgBox DER


 
(Dans cet exemple, on obtient la ligne de la dernière cellule non vide de la colonne C, que cette cellule contienne une donnée ou une formule)
 
J'ignore s'il existe une formule Excel pour y parvenir.
 
A+
Horatio


Message édité par Lord Nelson le 23-08-2004 à 23:21:26
Reply

Marsh Posté le 24-08-2004 à 10:58:10    

Merci mais ce programme me donne le numéro de cellule et non la donnée se trouvant dans cette cellule or il faut que je puisse réutiliser cette donnée. Donc il me faut une astuce pour que cette donnée soit réécrite dans une autre cellule excel. D'autre part le programme doit être activé en permanence de façon à ce que la donnée apparaisse toujours dans la cellule quelque soit la cellule d'origine.
Un autre détail, toute mes cellules de la colonne comportent une fonction "SI" qui permet d'afficher une donnée ou non en fonction d'autres cellules, or le programme doit être capable de détecter les cellules qui affichent des données et les cellules qui n'en affichent pas. Je ne sais pas si tout ça est bien clair, si tu as besoin d'autres infos n'hesites pas et merci d'avance.

Reply

Marsh Posté le 24-08-2004 à 19:04:04    

Salut,
 
Procédons par ordre :
 

Code :
  1. Dim DER As Long
  2. DER = Range("C65536" ).End(xlUp).Row


 
Nous donne l'adresse de la dernière cellule de la colonne C.
Allons voir ce qu'elle contient :
 

Code :
  1. MsgBox Range("C" & CStr(DER)).Text


 
et pour affecter ce contenu à une autre cellule, C1 par exemple :
 

Code :
  1. Range("C1" ) = Range("C" & CStr(DER))


 
J'espère que cela te mettra sur la bonne voie.
A+
Horatio
 

Reply

Marsh Posté le 22-09-2004 à 11:57:29    

Salut,
 
Maintenant que j'ai affecté le contenu de la dernière cellule remplie d'une colonne, je voudrais affecter le contenu de l'avant dernière cellule remplie de la colonne à une autre cellule
 
Merci d'avance

Reply

Marsh Posté le 26-09-2004 à 12:09:32    


'test sur la colonne C
Dim DER As Long
DER = Range("C65536" ).End(xlUp).Row
For i = (DER - 1) To 1 Step -1
  If Cells(i, 3) <> "" Then MsgBox (Cells(i, 3)): Exit For
Next i
 'tu peux bien entendu ajouter des tests dans le cas où tout est vide

Reply

Sujets relatifs:

Leave a Replay

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