[VB] besoin d'aide pour des macros

besoin d'aide pour des macros [VB] - VB/VBA/VBS - Programmation

Marsh Posté le 23-03-2005 à 10:30:38    

Tout d'abord bonjour.  
 
Je suis un débutant dans le langage Visual basic.  
 
Par contre j'ai pris des informations sur le net et aussi j'ai créé des macros manuellement avec l'enregistreur de macro, ce qui m'a permis de comprendre certaines choses.  
 
J'ai un souci.  
J'ai un graphique sur une "feuille2" qui va chercher des données sur un tableau sur une "feuille1".  
Ce graphique est une courbe avec en abscisse une colonne de la feuille1 et en ordonnée une autre colonne de la feuille1.  
 
 
Mon souci c'est qu'en faite les données que je récupère pour mon graphique ne doivent pas contenir de valeur nulles (cellule sans valeurs).  
 
Donc pour mon graphique j'ai la formule suivante "=SERIE(feuille1!B$1$:B$20$;feuille2!D$1$:D$20$)  
En gros ca ressemble à ca. Ca récupère les valeurs des colonnes B et D et des lignes 1 à 20.  
Le problème c'est que toutes les lignes ne possèdent pas forcément de valeur.  
Par contre dès qu'une cellule n'a pas de valeur, les cellules suivantes non plus n'en auront pas.  
ex : ligne 1,2,3,4 avec des données, par contre ligne 5 sans données, les lignes suivantes seront vides  
 
 
J'aimerais qu'en faite, la macro fasse :  
Tant qu'une cellule <> " "  
Alors ajouter à la sélection la cellule  
 
"Dès qu'une cellule est vide  
Alors le programme s'arrête"  
 
Et ca écrit la formule.  
Par exemple si ca s'arrete à la ligne 4 j'aimerais que la formule "=serie, etc..." soit mis à jour.  
 
En faite je cherche une macro qui créé une formule pour le graphique qu'avec des cellules non vides.  
 
 
 
 
 
Merci de m'éclairer.
 

Reply

Marsh Posté le 23-03-2005 à 10:30:38   

Reply

Marsh Posté le 23-03-2005 à 13:52:47    

salut
une petite question, tu veux l'écrire ou ta formule?

Reply

Marsh Posté le 23-03-2005 à 14:15:29    

bon je ne c pas si c ce que tu cherchais, mais voila une solution qui te copie la formule dans une autre cellule :
- "C15" pour tes abscisses
- "C16" pour test ordonnées
 
code :
Sub test()
 
Sheets("feuille1" ).Select
Range("a1" ).Select
 
'pour les abscisses
x = Range("A2" ).End(xlDown).Row
Selection.Range("A" & x).Select
y = "A1:A" & x
z = y & " )"
Range("C15" ).Select  'cellule dans laquelle est copiée la formule
ActiveCell.FormulaR1C1 = "=SERIE(feuille1!" & z
 
'pour les ordonnées
a = Range("B1" ).End(xlDown).Row
Selection.Range("B" & x).Select
b = "B1:" & z
c = b & " )"
Range("C16" ).Select  'cellule dans laquelle est copiée la formule
ActiveCell.FormulaR1C1 = "=SERIE(feuille1!" & c
 
End Sub

Reply

Marsh Posté le 26-03-2005 à 23:51:30    

merci pour ta réponse.
 
 
Je l'ai fait un peu plus simple, mardi quand j'irais au taff je te ferais un copier coller de ce que j'ai fait.

Reply

Sujets relatifs:

Leave a Replay

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