Manipuler plusieurs classeurs excel

Manipuler plusieurs classeurs excel - VB/VBA/VBS - Programmation

Marsh Posté le 26-08-2005 à 12:44:52    

Bonjour à tous,
 
je pense que c'est ici que je dois mettre ce post...
 
Donc voilà ce que je souhaite faire :
 
- un classeur avec plusieurs champs à remplir, ce classeur contient une date
- un classeur avec des onglets (un par mois) dont le nom est du genre classeur_2005
 
En fonction de la date, je dois aller chercher dans le bon classeur (en fonction de l'année) et dans le bon onglet (en fonction du mois) pour remplir le premier classeur (qui contient la date sur laquelle je fais mes tests).
 
La question est simple : suis je obligé de passer par du VB ? Si c'est le cas, est ce que la fonction peut être appelée de manière automatique quand la date du premier classeur change?
 
Merci pour votre aide, je connais pas trop VB, j'en ai fait une fois mais c'était surtout des modifications sur quelque chose qui était déjà fait...  :(  
 

Reply

Marsh Posté le 26-08-2005 à 12:44:52   

Reply

Marsh Posté le 26-08-2005 à 14:23:52    

Citation :

suis je obligé de passer par du VB ?


Ca doit etre faisable sans.. mais ca me semble plus simple avec ;)

Citation :

Si c'est le cas, est ce que la fonction peut être appelée de manière automatique quand la date du premier classeur change?


Oui, en placant l'appel a ta fonction dans l'evenement

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)


de ta feuille (dans l'editeur VB, bouton droit sur ta feuil1->Afficher le code)
 

Citation :

En fonction de la date, je dois aller chercher dans le bon classeur (en fonction de l'année) et dans le bon onglet (en fonction du mois) pour remplir le premier classeur (qui contient la date sur laquelle je fais mes tests).


Pour info, la fonction Year te renverra l'annee de ta date et la fonction Month pour recuperer le mois.
 
Un ptit exemple:

Code :
  1. ' Affiche le mois et l'annee contenu dans les cellules du
  2. ' range r (ATTENTION chaque cellule du range doit contenir
  3. ' une date!
  4. Private Sub fAffMonthAndYear(r As Range)
  5. Dim c As Range
  6. For Each c In r
  7.     MsgBox "mois: " & Month(c.Value) & vbNewLine & "annee: " & Year(c.Value)
  8. Next c
  9. End Sub
  10. 'Suppose que les cellules "A1:A3" contiennent des dates
  11. Private Sub Worksheet_Change(ByVal Target As Range)
  12. Dim rModified As Range
  13. Set rModified = Application.Intersect(Target, Range("A1:A3" ))
  14. If Not rModified Is Nothing Then Call fAffMonthAndYear(rModified)
  15. End Sub


---------------
Guendalf
Reply

Marsh Posté le 26-08-2005 à 14:54:34    

Je te remercie beaucoup, je vais tester ca ce soir ou ce week end! C'est pour mon patron mais ca fait pas partie de mon travail!! J'ai comme l'impression de ma faire arnaqué là!!!  :sarcastic:

Reply

Sujets relatifs:

Leave a Replay

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