Pb excel virtual basique
botoufu
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Gord21 Messages postés 928 Statut Membre -
Gord21 Messages postés 928 Statut Membre -
Bonjour à tous,
J’ai un problème, assez urgent à résoudre sur Excel.
Je vous explique : L’objectif final est d’obtenir un tableur Excel avec a chaque date donnée le cours du pétrole, de l’euro dollar, de l’or, du CAC 40 etc.….
J’ai déjà téléchargé (sur Yahoo finance) les historiques de tous ces cours au jour le jour sur les 10 dernières années. Cependant, pour chacun des cours, il manque certaine dates. C'est-à-dire que par exemple le 20/10/05 je n’ai pas de cours de pétrole, ou le 12/05/09 je n’ai pas de cours du CAC 40 etc….
Au finale je me retrouve avec un tableur Excel ou les dates sont décalées :
CAC 40 Dassault Avia
Date Open Close Date Open Close
29/12/2009 3959.03 3959.98 29/12/2009 524.00 524.94
23/12/2009 3923.31 3910.75 24/12/2009 520.00 522.00
22/12/2009 3878.86 3898.38 23/12/2009 521.99 520.00
21/12/2009 3807.84 3872.06 22/12/2009 522.00 516.01
18/12/2009 3833.72 3794.44 21/12/2009 523.50 523.48
17/12/2009 3847.99 3830.82 18/12/2009 520.00 523.49
16/12/2009 3837.11 3875.82 17/12/2009 513.97 515.00
15/12/2009 3834.53 3834.09 16/12/2009 514.00 513.97
14/12/2009 3839.75 3830.44 15/12/2009 509.99 512.00
11/12/2009 3795.06 3803.72 14/12/2009 507.00 509.85
10/12/2009 3756.90 3798.38 11/12/2009 505.01 507.50
09/12/2009 3776.53 3757.39 10/12/2009 505.02 509.98
Et ceci pour des milliers de valeurs et de nombreux cours !!!
Ce que je voudrais c'est dès qu'une date n'est pas présente supprimer toutes les valeurs à cette date. Au finale je voudrai un tableau ou les dates seraient bien les unes en face des autres et ou il ne manquerait aucune valeur…
Merci beaucoup pour toute l’aide que vous pourrez m’apporter car je suis complètement perdu !!
J’ai un problème, assez urgent à résoudre sur Excel.
Je vous explique : L’objectif final est d’obtenir un tableur Excel avec a chaque date donnée le cours du pétrole, de l’euro dollar, de l’or, du CAC 40 etc.….
J’ai déjà téléchargé (sur Yahoo finance) les historiques de tous ces cours au jour le jour sur les 10 dernières années. Cependant, pour chacun des cours, il manque certaine dates. C'est-à-dire que par exemple le 20/10/05 je n’ai pas de cours de pétrole, ou le 12/05/09 je n’ai pas de cours du CAC 40 etc….
Au finale je me retrouve avec un tableur Excel ou les dates sont décalées :
CAC 40 Dassault Avia
Date Open Close Date Open Close
29/12/2009 3959.03 3959.98 29/12/2009 524.00 524.94
23/12/2009 3923.31 3910.75 24/12/2009 520.00 522.00
22/12/2009 3878.86 3898.38 23/12/2009 521.99 520.00
21/12/2009 3807.84 3872.06 22/12/2009 522.00 516.01
18/12/2009 3833.72 3794.44 21/12/2009 523.50 523.48
17/12/2009 3847.99 3830.82 18/12/2009 520.00 523.49
16/12/2009 3837.11 3875.82 17/12/2009 513.97 515.00
15/12/2009 3834.53 3834.09 16/12/2009 514.00 513.97
14/12/2009 3839.75 3830.44 15/12/2009 509.99 512.00
11/12/2009 3795.06 3803.72 14/12/2009 507.00 509.85
10/12/2009 3756.90 3798.38 11/12/2009 505.01 507.50
09/12/2009 3776.53 3757.39 10/12/2009 505.02 509.98
Et ceci pour des milliers de valeurs et de nombreux cours !!!
Ce que je voudrais c'est dès qu'une date n'est pas présente supprimer toutes les valeurs à cette date. Au finale je voudrai un tableau ou les dates seraient bien les unes en face des autres et ou il ne manquerait aucune valeur…
Merci beaucoup pour toute l’aide que vous pourrez m’apporter car je suis complètement perdu !!
A voir également:
- Pb excel virtual basique
- Liste déroulante excel - Guide
- Virtual dj - Télécharger - DJ & Karaoké
- Word et excel gratuit - Guide
- Virtual clonedrive - Télécharger - Divers Utilitaires
- Si ou excel - Guide
17 réponses
Bonsoir,
plusieurs questions :
- Est-ce que ton ordre est toujours : Date Open Close Date ... ?
- Sur combien de colonnes ?
- Des miliers de valeurs : si tu est sur Excel 2003, tu es limité à 65536 lignes
plusieurs questions :
- Est-ce que ton ordre est toujours : Date Open Close Date ... ?
- Sur combien de colonnes ?
- Des miliers de valeurs : si tu est sur Excel 2003, tu es limité à 65536 lignes
Bonsoir,
Oui mon ordre est toujours le même sauf pour la première colonne ou je n'ai que date open ( pas close ). Mais sinon c'est toujours pareil...
J'ai environ 3600 valeurs ( 10 ans )
Oui mon ordre est toujours le même sauf pour la première colonne ou je n'ai que date open ( pas close ). Mais sinon c'est toujours pareil...
J'ai environ 3600 valeurs ( 10 ans )
Voici le code de la macro
Hypothèse :
La première date est à la ligne 1. Si ce n'est pas le cas, remplace la valeur.
Hypothèse :
La première date est à la ligne 1. Si ce n'est pas le cas, remplace la valeur.
Sub Supprimer_incompletes()
'
Dim Date_ref As Date
Dim Date_lue As Date
Dim ligne As Long
Dim offset_colonne As Long
'
ligne = 1
offset_colonne = 2
'
Date_ref = CDate(Range("A" & ligne).Value)
'
While Date_ref <> CDate(Empty)
Date_lue = CDate(Range("A" & ligne).Offset(0, offset_colonne).Value)
If Date_lue = CDate(Empty) Then
ligne = ligne + 1
offset_colonne = 2
Date_ref = CDate(Range("A" & ligne).Value)
Else
If Date_lue <> Date_ref Then
Rows(ligne).Delete Shift:=xlUp
offset_colonne = 2
Date_ref = CDate(Range("A" & ligne).Value)
Else
offset_colonne = offset_colonne + 3
End If
End If
Wend
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai été dans virtual basique (alt f11) j'ai mi exécuté ton code, je l'ai recopié dans la macro que j'ai exécuté mais sa ne fais rien du tout .... J'ai mal fais quelque chose ? Merci beaucoup.
Mon tableur Excel commence comme cela :
EURO/Dollar CAC 40 Dassault Avia
Date EUR/USD Date Open Close Date
29/12/2009 1.443300 29/12/2009 3959.03 3959.98 29/12/2009
23/12/2009 1.427600 23/12/2009 3923.31 3910.75 24/12/2009
22/12/2009 1.427900 22/12/2009 3878.86 3898.38 23/12/2009
et ensuite c'est tout le temps date open close date open close...
Merci !
EURO/Dollar CAC 40 Dassault Avia
Date EUR/USD Date Open Close Date
29/12/2009 1.443300 29/12/2009 3959.03 3959.98 29/12/2009
23/12/2009 1.427600 23/12/2009 3923.31 3910.75 24/12/2009
22/12/2009 1.427900 22/12/2009 3878.86 3898.38 23/12/2009
et ensuite c'est tout le temps date open close date open close...
Merci !
Bonjour,
Si j'ai bien compris, tu as :
et pour la ligne 6 par exemple, tu as :
Si c'est bien le cas, tu ouvres ton classeur, tu ouvres Visual Basic (Alt + F11). Dans le volet Projet (à gauche par défaut) tu sélectionnes ton classeur, puis Insertion / Module. Dans la fenêtre qui s'ouvre, tu colles ce code :
Ensuite, tu retournes dans Excel, et tu lances la macro Supprimer_incompletes (Alt + F8)
Ca devrait fonctionner.
Sinon, tu peux mettre un lien vers ton fichier en utilisant cijoint.fr par exemple, comme ça, je peux te faire la manipulation sur ton fichier directement.
Si j'ai bien compris, tu as :
ligne 1 : EURO/Dollar CAC 40 Dassault Avia ligne 2 : ligne 3 : Date EUR/USD Date Open Close Date ligne 4 : ligne 5 : ligne 6 : 29/12/2009 1.443300 29/12/2009 3959.03 3959.98 29/12/2009 ligne 7 : 23/12/2009 1.427600 23/12/2009 3923.31 3910.75 24/12/2009 ligne 8 : 22/12/2009 1.427900 22/12/2009 3878.86 3898.38 23/12/2009
et pour la ligne 6 par exemple, tu as :
colonne A : 29/12/2009 colonne B : 1.443300 colonne C : 29/12/2009 colonne D : 3959.03 colonne E : 3959.98 colonne F : 29/12/2009
Si c'est bien le cas, tu ouvres ton classeur, tu ouvres Visual Basic (Alt + F11). Dans le volet Projet (à gauche par défaut) tu sélectionnes ton classeur, puis Insertion / Module. Dans la fenêtre qui s'ouvre, tu colles ce code :
Sub Supprimer_incompletes()
'
Dim Date_ref As Date
Dim Date_lue As Date
Dim ligne As Long
Dim offset_colonne As Long
'
ligne = 6
offset_colonne = 2
'
Date_ref = CDate(Range("A" & ligne).Value)
'
While Date_ref <> CDate(Empty)
Date_lue = CDate(Range("A" & ligne).Offset(0, offset_colonne).Value)
If Date_lue = CDate(Empty) Then
ligne = ligne + 1
offset_colonne = 2
Date_ref = CDate(Range("A" & ligne).Value)
Else
If Date_lue <> Date_ref Then
Rows(ligne).Delete Shift:=xlUp
offset_colonne = 2
Date_ref = CDate(Range("A" & ligne).Value)
Else
offset_colonne = offset_colonne + 3
End If
End If
Wend
End Sub
Ensuite, tu retournes dans Excel, et tu lances la macro Supprimer_incompletes (Alt + F8)
Ca devrait fonctionner.
Sinon, tu peux mettre un lien vers ton fichier en utilisant cijoint.fr par exemple, comme ça, je peux te faire la manipulation sur ton fichier directement.
J'ai pratiquement sa, mais en réalité les 2 premières lignes sont vides
Ligne 3 euro dollar Cac 40 Dassault...
Et je ne m'arrête pas à Dassault ensuite il y a Dow Jones, Nasdaq, Nikkey etc....
Cela change quelque chose ?
Et dernier détail pour que tu visualise tout parfaitement : certaines base de données sont plus longues que les autres. Conclusion vers les lignes de la fin il y a par exemple " date open close RIEN RIEN RIEN date open close" etc...
En tout cas merci beaucoup pour l'aide que tu m'apporte car je suis désespéré!!
Ligne 3 euro dollar Cac 40 Dassault...
Et je ne m'arrête pas à Dassault ensuite il y a Dow Jones, Nasdaq, Nikkey etc....
Cela change quelque chose ?
Et dernier détail pour que tu visualise tout parfaitement : certaines base de données sont plus longues que les autres. Conclusion vers les lignes de la fin il y a par exemple " date open close RIEN RIEN RIEN date open close" etc...
En tout cas merci beaucoup pour l'aide que tu m'apporte car je suis désespéré!!
J'ai fais comme tu m'as dit mais cela ne fonctionne pas, sa ne fait rien du tout en faite.
Il y a peut être des sécurité qui bloque tout ? il faut que je surligne mon classeur ..?
Il y a peut être des sécurité qui bloque tout ? il faut que je surligne mon classeur ..?
Pour les deux lignes vierges du début, oui, ça change quelque chose : il faut que tu remplace la ligne ligne = 6 par ligne = 8
Pour les dernières lignes, avec cette macro, il faudra que tu les effaces manuellement.
Sinon, pour mettre le lien, tu vas sur le site cijoint.fr, tu sélectionnes parcourir pour rechercher ton fichier puis tu sélectionnes Cliquez ici pour déposer le fichier. Ensuite, tu copies le liens et tu le postes. Comme ça, j'aurai accès à ton fichier.
Pour les dernières lignes, avec cette macro, il faudra que tu les effaces manuellement.
Sinon, pour mettre le lien, tu vas sur le site cijoint.fr, tu sélectionnes parcourir pour rechercher ton fichier puis tu sélectionnes Cliquez ici pour déposer le fichier. Ensuite, tu copies le liens et tu le postes. Comme ça, j'aurai accès à ton fichier.
Avec ton nouveau code il me dit " impossible d'exécuter le code en mode arrêt...
Je pensait peut être que cela serait plus simple en utilisant une base de donnée et un code SQL permettant d'afficher les cours pour les dates communes ..?
Encore merci
Je pensait peut être que cela serait plus simple en utilisant une base de donnée et un code SQL permettant d'afficher les cours pour les dates communes ..?
Encore merci
dans enregistrer sous je n'ai pas xls... j'ai plein d'autre truc mais pas sa ??
Je continue de chercher
Je continue de chercher
http://www.cijoint.fr/cjlink.php?file=cj201002/cijohrvFP9.xlsm
c'est pas tout à fais sa mais es que c'est mieux ?
c'est pas tout à fais sa mais es que c'est mieux ?
J'ai réussi à faire marcher ton programme mais il y a quelques problèmes :
Dans un premier temps il ne voulais pas s'exécuter; j'ai alors supprimé toutes les valeurs finales pour avoir chaque colonne de la même taille. Là il c'est exécuté mais m'a tout supprimmé, ne me laissant qu'une seule ligne.
J'ai ensuite voulu opérer étape par étape : j'ai supprimé toutes les colonnes pour n'en garder que 2 et j'ai rajouté à la fin de la 2eme colonne des dates bidons ( 2012 ) pour avoir des colonnes de taille identique, là ça a un peu marché mais sa ne m'a donné que 36 lignes ( j'ai vérifié il manque des dates )...
Que faire ?
Merci !!
Dans un premier temps il ne voulais pas s'exécuter; j'ai alors supprimé toutes les valeurs finales pour avoir chaque colonne de la même taille. Là il c'est exécuté mais m'a tout supprimmé, ne me laissant qu'une seule ligne.
J'ai ensuite voulu opérer étape par étape : j'ai supprimé toutes les colonnes pour n'en garder que 2 et j'ai rajouté à la fin de la 2eme colonne des dates bidons ( 2012 ) pour avoir des colonnes de taille identique, là ça a un peu marché mais sa ne m'a donné que 36 lignes ( j'ai vérifié il manque des dates )...
Que faire ?
Merci !!
En faite, je crois avoir compris que ton programme supprime les dates lorsque celle ci ne sont pas équivalente, le problème c'est que je voudrai qu'il aille chercher la date équivalente pour au final avoir toutes les dates équivalentes... Je sais pas si tu me suis ?
Je voudrai qu'il parcourt la colonne 1 qu'il regarde dans la colonne 2 si la date est équivalente. Sinon si elle n'est pas équivalente il va chercher dans la colonne la date équivalente et écrit la valeur à droite.
En faite si tu sais le faire je n'ai pas besoin que sa le fasse directement pour toute les colonne mais juste pour 2 cours ( 6 colonnes )
Je voudrai qu'il parcourt la colonne 1 qu'il regarde dans la colonne 2 si la date est équivalente. Sinon si elle n'est pas équivalente il va chercher dans la colonne la date équivalente et écrit la valeur à droite.
En faite si tu sais le faire je n'ai pas besoin que sa le fasse directement pour toute les colonne mais juste pour 2 cours ( 6 colonnes )
Bonjour,
J'ai un peu traîné mais voici une proposition :
http://www.cijoint.fr/cjlink.php?file=cj201002/cij0qJjZ7j.xls
Je t'ai laissé l'onglet trié.
Pour info, si tu as besoin de réutiliser la macro, elle tourne pendant environ 2 minutes. Si tu en as souvent besoin il est possible d'optimiser le code. N'hésite pas.
J'ai un peu traîné mais voici une proposition :
http://www.cijoint.fr/cjlink.php?file=cj201002/cij0qJjZ7j.xls
Je t'ai laissé l'onglet trié.
Pour info, si tu as besoin de réutiliser la macro, elle tourne pendant environ 2 minutes. Si tu en as souvent besoin il est possible d'optimiser le code. N'hésite pas.