Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1106 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  2 macros excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

2 macros excel

n°1643660
lillumulti​pass
Posté le 15-11-2007 à 23:08:14  profilanswer
 

salut tout le monde,
 
alors voilà, pour améliorer mon quotidien de stage, j'aimerais bien améliorer 2-3 fichiers excel.
 
1. Dans le premier, en fait, on récupère d'une autre appli des séries de données pour calculer des taux de rendements (cad qu'il fait (xt/xt-1)-1 avec xt-1 la valeur à la date t-1). Le problème, c'est qu'il arrive parfois que des données manquent (pour un jour donné), et donc ce qui empêche de calculer un taux de rendement et on obtient un joli "N/A" dans la case.
Dans ce cas, on rajoute (à la main) un "-1" à toutes les formules qui posent problème, pour lui dire d'aller chercher la valeur du jour d'avant (et donc, aussi la valeur en t-2). Le problème c'est qu'il faut faire ça pour chaque cas qui pose problème. Et pire, la fois d'après, il faut enlever les "-1" pour voir s'il trouve des valeurs.
Bref, c'est la merdouille.
Donc, ce que j'aimerais faire, c'est créer une formule, voire une macro, pour lui dire d'aller chercher la valeur de la date en question, et si le résultat du calcul donne "N/A", de prendre la date j-1; si ça donne encore rien, prendre j-2, puis j-3.
J'avais pensé à faire une macro VBA à base d'une boucle  For i=0, 3...
mais vu comment le fichier est foutu, je me demande si ça ne serait pas plus facile de faire une formule que j'étirerai dans toutes les cellules concernées.
Des idées?
 
2. Pour le 2ème problème, j'aimerais faire une macro qui enlève les doublons; en gros, je lui demanderai de regarder une liste de nom (par colonne) et d'enlever tous les doublons, mais, en vérifiant quand même la case qui est à droite qui contient un numéro. Si le nom et le numéro correspondent, j'aimerais qu'il efface les doublons (voir plus parfois...)
Celle là, je ne vois pas trop comment l'implémenter...
 
Voilà, je vais réfléchir à tout ça demain, mais si quelqu'un à des pistes à me fournir, ça serait cool, parceque je ne suis pas un expert de VBA encore.
 
Merci :bounce:  
 
 
 

mood
Publicité
Posté le 15-11-2007 à 23:08:14  profilanswer
 

n°1643705
galopin01
Posté le 16-11-2007 à 08:37:04  profilanswer
 

bonjour,
pour le premier pb je réfère passer par une colonne intermédiaire qui renvoie les valeurs de chaque jour
=SI(CelVal="";CelVal(L-1);CelVal)
De la sorte tu ne pointes jamais sur une cellule vide.
Pour le 2° pb
Au lieu de comparer colonne par colonne crée des variables qui concatènent les 2 colonnes
Str1 = CelCol1 & CelCol2
Str2 = CelColA & CelColB
Si Str1 = Str2 alors doublon...
A+

n°1644017
lillumulti​pass
Posté le 16-11-2007 à 14:57:15  profilanswer
 

Hello,

 

merci pour les réponses.

 

Alors, avec ton idée, voilà ce que ça donne pour la 2:

Code :
  1. Dim Number_Columns As Double
  2. Dim concat_i, concat_j As Variant
  3. Sub Remove_doublons()
  4. Number_Colums = Range(Selection, Selection.End(xlDown)).Count
  5. For i = 1 To Number_Colums
  6. For j = i + 1 To Number_Colums
  7.      
  8. concat_i = Cells(i, 1).Value & Cells(i, 2).Value
  9. concat_j = Cells(j, 1).Value & Cells(j, 2).Value
  10. If concat_i = concat_j Then Rows(j).Delete
  11. Next j
  12. Next i
  13. End Sub
 

Et ça marche nickel, je suis content!
Maintenant, je me dis que ça serait cool si je pouvais insérer un bouton ds le tableau, qui me permettrait, quand je clique dessus, de lancer la macro automatiquement.
Et ça je sais pas faire encore...

 

Par contre, je comprends pas trop ce que tu veux me dire pour la 1ère. Peut être que je n'ai pas été assez clair, alors je vais préciser.
En gros, à chaque fois qu'on lance la macro (en ayant précisé un champ de dates), Excel va chercher dans Bloomberg des valeurs qu'il stocke ensuite dans une worksheet; dans la worksheet principal, on lui demande de calculer des taux de rendements journaliers, hebdomadaires, mensuels, annuels...
Donc, si par exemple, dans bloomberg il n'y a pas le prix le 17/11/2007, il ressort "N/A history" ce qui empêche de calculer les rendements hebdomadaire entre le 17 et le 10 par exemple. Donc, je mets un "-1" dans la formule, pour qu'il calcule entre le 16 et le 9 par exemple.
Mais faire ça à la main  une centaine de fois, c'est soulant...

 

En gros, comme il y a déjà les formules dans chaque case, je me dis qu'il faudrait juste rajouter un truc du genre IF Value= "N/A History" Then Do... avec la même formule que déjà inscrite avec un -1 en plus.
Dans ce genre, mais en bien écrit quoi...


Message édité par lillumultipass le 16-11-2007 à 15:15:30

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  2 macros excel

 

Sujets relatifs
Macros simultanées sur excel?Macros simultanées sur Excel?
probleme d'execution de macros à l'ouverture d'excelPourquoi les macros d'un Excel intégré dans Word ne fonctionne pas?
Classeurs Excel avec macros dans WordAux specialistes des macros excel: tabulation automatique
Excel via POI, et fichiers avec macros...macros excel à télécharger
Macros Excel : jusqu'ou peut on aller ?Excel et ses macros ???
Plus de sujets relatifs à : 2 macros excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR