Macro - déplacement de cellules en fonction de valeurs...
Résolu
chingy1997
Messages postés
66
Date d'inscription
Statut
Membre
Dernière intervention
-
chingy1997 -
chingy1997 -
A voir également:
- Macro - déplacement de cellules en fonction de valeurs...
- Fonction si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Historique déplacement google - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
20 réponses
Bonjour
Un exemple sans macro à adapter
https://www.cjoint.com/?3ACs741lOp0
RQ. si tu tiens à tout prix a une macro, tu dis
Cdlmnt
Un exemple sans macro à adapter
https://www.cjoint.com/?3ACs741lOp0
RQ. si tu tiens à tout prix a une macro, tu dis
Cdlmnt
oui, merci pour ta réponse.
ton système fonctionne bien mais je prefere une macro car j'ai des 10 aines de fichiers à analyser (peut etre 100), une macro serait plus pratique..
https://www.cjoint.com/?DADjLQH96R5
Voici mon fichier original (tres allégé, plus de 22k lignes sinon)
Merci de votre aide.
Salutations,
ton système fonctionne bien mais je prefere une macro car j'ai des 10 aines de fichiers à analyser (peut etre 100), une macro serait plus pratique..
https://www.cjoint.com/?DADjLQH96R5
Voici mon fichier original (tres allégé, plus de 22k lignes sinon)
Merci de votre aide.
Salutations,
Bonjour à tous,
Une proposition pendant que ccm81 prend son petit dej :
eric
Une proposition pendant que ccm81 prend son petit dej :
Sub synthese() Dim derlig As Long, nbData As Long derlig = Cells(Rows.Count, 1).End(xlUp).Row nbData = (derlig - 1) \ 3 [N:R].ClearContents ' nettoyer [N1] = "groupage": [O1] = "nature": [P1] = "Débit": [Q1] = "Taux": [R1] = "Vitesse" ' titres [N2:O2].Resize(nbData) = [I2:J2].Resize(nbData).Value ' date-heure [P2].Resize(nbData) = [L2].Resize(nbData).Value ' Débit [Q2].Resize(nbData) = [L2].Offset(nbData).Resize(nbData).Value ' Taux [R2].Resize(nbData) = [L2].Offset(nbData * 2).Resize(nbData).Value ' Vitesse [O:O].NumberFormat = "hh:mm:ss" End Sub
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alors, ca marche bien sur ton tableau mais ca bug sur le mien...
Il met dit
"erreur d'exécution "1004"
erreur définie par l'application ou par l'objet
Et la ligne ci-dessous est surlignée.
[N2:O2].Resize(nbData) = [I2:J2].Resize(nbData).Value ' date-heure
Mais c'est pas loin...
Il met dit
"erreur d'exécution "1004"
erreur définie par l'application ou par l'objet
Et la ligne ci-dessous est surlignée.
[N2:O2].Resize(nbData) = [I2:J2].Resize(nbData).Value ' date-heure
Mais c'est pas loin...
Si si, ca marche parfaitement bien.
Mon soucis, c'est que mon fichier csv contient 70000 lignes env., et avec excell 2000, il l'ouvre pas completement, il tronque les dernieres lignes...
nbData = (derlig - 1) \ 3 : ce calcul ne peux pas se faire correctement, ca n'est pas un entier ?
Si le soucis vient de la, il faudrait prendre nbData=nb de lignes de débit
Je viens de tester en tronquant également les derneires lignes de debit, taux et vitesse et ca marche.
Confirmes moi ca stp.
merci
Mon soucis, c'est que mon fichier csv contient 70000 lignes env., et avec excell 2000, il l'ouvre pas completement, il tronque les dernieres lignes...
nbData = (derlig - 1) \ 3 : ce calcul ne peux pas se faire correctement, ca n'est pas un entier ?
Si le soucis vient de la, il faudrait prendre nbData=nb de lignes de débit
Je viens de tester en tronquant également les derneires lignes de debit, taux et vitesse et ca marche.
Confirmes moi ca stp.
merci
nbData = (derlig - 1) \ 3 : ce calcul ne peux pas se faire correctement, ca n'est pas un entier ?
Si c'est un entier
nbData = nombre de lignes de données.
En théorie, tu en as bien 'nombre total de lignes de données' / 3
\ est en vba la division entière, juste plus rapide que /
Maintenant si tu ne peux pas ouvrir le fichier en entier c'est clair que le résultat est faussé.
Remplacer par :
nbData = Evaluate("COUNTIF(K:K,""Débit"")")
Qui sera exact dans tous les cas.
Bien sûr il y aura des lignes incomplètes sur excel 2000...
eric
Si c'est un entier
nbData = nombre de lignes de données.
En théorie, tu en as bien 'nombre total de lignes de données' / 3
\ est en vba la division entière, juste plus rapide que /
Maintenant si tu ne peux pas ouvrir le fichier en entier c'est clair que le résultat est faussé.
Remplacer par :
nbData = Evaluate("COUNTIF(K:K,""Débit"")")
Qui sera exact dans tous les cas.
Bien sûr il y aura des lignes incomplètes sur excel 2000...
eric
Bonjour,
Petit retour sur ta macro. Elle marche avec la nouvelle NbData, sauf pour les vitesses (les lignes tronquées du bas de tableau).
Les colonnes sont bien créés, elles sont remplies sauf la colonne vitesse qui est vide.
Faudrait créer une nbData spéciale pour les vitesses, genre
Sub MEF5()
Dim derlig As Long, nbData As Long, nbData2 As Long
derlig = Cells(Rows.Count, 1).End(xlUp).Row
nbData = Evaluate("COUNTIF(K:K,""Débit"")")
nbData2 = Evaluate("COUNTIF(K:K,""Vitesse"")")
[N:R].ClearContents ' nettoyer
[N1] = "groupage": [P1] = "Débit": [Q1] = "Taux": [R1] = "Vitesse" ' titres
[N2:O2].Resize(nbData) = [I2:J2].Resize(nbData).Value ' date-heure
[P2].Resize(nbData) = [L2].Resize(nbData).Value ' Débit
[Q2].Resize(nbData) = [L2].Offset(nbData).Resize(nbData).Value ' Taux
[R2].Resize(nbData2) = [L2].Offset(nbData2 * 2).Resize(nbData2).Value ' Vitesse
[O:O].NumberFormat = "hh:mm:ss"
End Sub
Ca deconne un poil, les 1eres lignes des vitesses sont des taux, ca se decale un chouya...
Petit retour sur ta macro. Elle marche avec la nouvelle NbData, sauf pour les vitesses (les lignes tronquées du bas de tableau).
Les colonnes sont bien créés, elles sont remplies sauf la colonne vitesse qui est vide.
Faudrait créer une nbData spéciale pour les vitesses, genre
Sub MEF5()
Dim derlig As Long, nbData As Long, nbData2 As Long
derlig = Cells(Rows.Count, 1).End(xlUp).Row
nbData = Evaluate("COUNTIF(K:K,""Débit"")")
nbData2 = Evaluate("COUNTIF(K:K,""Vitesse"")")
[N:R].ClearContents ' nettoyer
[N1] = "groupage": [P1] = "Débit": [Q1] = "Taux": [R1] = "Vitesse" ' titres
[N2:O2].Resize(nbData) = [I2:J2].Resize(nbData).Value ' date-heure
[P2].Resize(nbData) = [L2].Resize(nbData).Value ' Débit
[Q2].Resize(nbData) = [L2].Offset(nbData).Resize(nbData).Value ' Taux
[R2].Resize(nbData2) = [L2].Offset(nbData2 * 2).Resize(nbData2).Value ' Vitesse
[O:O].NumberFormat = "hh:mm:ss"
End Sub
Ca deconne un poil, les 1eres lignes des vitesses sont des taux, ca se decale un chouya...
Nouvelle version:
Ca marche bien à priori. Tu m'as bien aidé, merci.
Par contre, j'ai un autre soucis maintenant.. Je récupère des données pourries avec des "trous", cad avec les plages horaires qui n'existent pas... Ce sont des données 6', l'idéal serait de pouvoir controler si le pas de chaque ligne est bien de 6', sinon rajouter le nombre de lignes manquantes (si la station de comptage n'a pas fonctionnée pdt 1/2h, il manque 5 lignes), et mettre l'attribut qui va bien (pour que la macro precedente fonctionne).
Donne moi ton avis sur la faisabilité de la chose (c'est une macro spécifique à appliquer avant cette macro de mise en forme).
Encore merci.
Sub MEF5()
Dim derlig As Long, nbData As Long, nbData2 As Long, nbData3 As Long
derlig = Cells(Rows.Count, 1).End(xlUp).Row
nbData = Evaluate("COUNTIF(K:K,""Débit"")")
nbData2 = Evaluate("COUNTIF(K:K,""Taux"")")
nbData3 = Evaluate("COUNTIF(K:K,""Vitesse"")")
[N:R].ClearContents ' nettoyer
[N1] = "groupage": [P1] = "Débit": [Q1] = "Taux": [R1] = "Vitesse" ' titres
[S1] = nbData: [S2] = nbData2: [S3] = nbData3
[N2:O2].Resize(nbData) = [I2:J2].Resize(nbData).Value ' date-heure
[P2].Resize(nbData) = [L2].Resize(nbData).Value ' Débit
[Q2].Resize(nbData2) = [L2].Offset(nbData).Resize(nbData2).Value ' Taux
[R2].Resize(nbData3) = [L2].Offset(nbData + nbData2).Resize(nbData3).Value ' Vitesse
[O:O].NumberFormat = "hh:mm:ss"
End Sub
Ca marche bien à priori. Tu m'as bien aidé, merci.
Par contre, j'ai un autre soucis maintenant.. Je récupère des données pourries avec des "trous", cad avec les plages horaires qui n'existent pas... Ce sont des données 6', l'idéal serait de pouvoir controler si le pas de chaque ligne est bien de 6', sinon rajouter le nombre de lignes manquantes (si la station de comptage n'a pas fonctionnée pdt 1/2h, il manque 5 lignes), et mettre l'attribut qui va bien (pour que la macro precedente fonctionne).
Donne moi ton avis sur la faisabilité de la chose (c'est une macro spécifique à appliquer avant cette macro de mise en forme).
Encore merci.
Ci joint l'exemple:
https://www.cjoint.com/?DAEjU3NYlxz
Il faut l'appliquer avant l'autre macro que tu m'as faite...
https://www.cjoint.com/?DAEjU3NYlxz
Il faut l'appliquer avant l'autre macro que tu m'as faite...
Typiquement, je controle en faisant une mise en forme conditionnelle sur une nouvelle colonne créée, qui calcule le pas de 6'. Si la valeur est différente de 6', ca se met en rouge. Je passe l'intégralité du tableau comme ça et je saute autant de lignes que d'occurences manquantes...
https://www.cjoint.com/?DAEjzgds575
Sur cet exemple, manque 42' , je saute 6 lignes.
Malheureusement, je ne peux plus rajouter de lignes... ARf
https://www.cjoint.com/?DAEjzgds575
Sur cet exemple, manque 42' , je saute 6 lignes.
Malheureusement, je ne peux plus rajouter de lignes... ARf
Normalement, je travaille avec libreoffice (donc pas de soucis de ligne), et je fait tout a la mano, ca me prend un temps fou... J'ai donc décidé de faire des macros. Malheureusement, l'enregistreur de macro de libreoffice fonctionne mal... J'ai donc basculé sur excel (version 2000) qui a un enregistreur de macro efficace pour la mise en forme de base... Mais maintenant je suis conicé avec cette satanée limitation de lignes...
Comment importes-tu le csv ? Manuellement ou par macro ?
Le mieux est sans doute de réfléchir et de tout reprendre à 0....
Peux-tu déposer un extrait de csv au format texte ? Une 30aine (x3 champs en cohérences) de lignes suffisent.
1) C'est toujours 6' pile-poil ou il peut y avoir un décalage de quelques secondes au fil du temps ?
2) Combien de secondes max ?
3) en comptant très large, combien de lignes à insérer maxi ?
4) sur 2000, 65536 lignes ?
5) Est-ce toujours la même journée dans un csv ?
Il faudra attendre que j'ai un peu de temps dispo...
eric
Le mieux est sans doute de réfléchir et de tout reprendre à 0....
Peux-tu déposer un extrait de csv au format texte ? Une 30aine (x3 champs en cohérences) de lignes suffisent.
1) C'est toujours 6' pile-poil ou il peut y avoir un décalage de quelques secondes au fil du temps ?
2) Combien de secondes max ?
3) en comptant très large, combien de lignes à insérer maxi ?
4) sur 2000, 65536 lignes ?
5) Est-ce toujours la même journée dans un csv ?
Il faudra attendre que j'ai un peu de temps dispo...
eric
Voici un fichier csv allégé que je reçois:
https://www.cjoint.com/?DAEm0a9vFgj
le pas est toujours de 6' pile.
Ici, les csv sont agrégés sur 3 mois (01/10/12 au 31/12/12, soit 22081 lignes pour les débit, puis 22081 pour le taux, puis 22081 lignes pour les vitesses, soit 66243 lignes > 65536 max de XLS2000).
Généralement, j'ai une 40 aine ou 50aine de lignes à ajouter à la main. (il peut arriver qu'il y ait bcp plus, la station de comptage est en panne une semaine par ex. mias dans ce cas, j'élimine la donnée). Ca, c'est le plus chiant à faire, reperer les trous dans le tableau, et inserer les lignes pour avoir des "matrices" identiques pour chaque csv. J'ai un csv par station de comptage, et je fait des analyses en comparant des stations, etc..).
Merci de ton aide.
https://www.cjoint.com/?DAEm0a9vFgj
le pas est toujours de 6' pile.
Ici, les csv sont agrégés sur 3 mois (01/10/12 au 31/12/12, soit 22081 lignes pour les débit, puis 22081 pour le taux, puis 22081 lignes pour les vitesses, soit 66243 lignes > 65536 max de XLS2000).
Généralement, j'ai une 40 aine ou 50aine de lignes à ajouter à la main. (il peut arriver qu'il y ait bcp plus, la station de comptage est en panne une semaine par ex. mias dans ce cas, j'élimine la donnée). Ca, c'est le plus chiant à faire, reperer les trous dans le tableau, et inserer les lignes pour avoir des "matrices" identiques pour chaque csv. J'ai un csv par station de comptage, et je fait des analyses en comparant des stations, etc..).
Merci de ton aide.
non, les stations agrègent les données sur 3 mois, c'est un fichier par trimestre.
C'est jouable...
Seulement on a beaucoup parlé du résultat intermédiaire que tu envisageais, mais peu (ou alors très dispersé dans les 20 posts) du résultat final.
Vu que je me passe de cette étape intermédiaire bloquante sur 2000, j'aimerais une synthèse du résultat final style :
1) Tes titres de colonnes sont erronés par rapport au csv pour Date, Heure.
csv : jour, sequence là où tu as mis : groupage nature
Quels titres exacts veux-tu ?
2) Si il manque 1 ou 2 données :
- on laisse vide ?
- on remplace par 0 ? par "-" ou autre chaine ?
- on supprime la ligne ?
- autre chose ?
3) il manque les 3 données : à partir de combien de lignes vides consécutives supprime-t-on les lignes ?
4) doit-on laisser une ligne vide, ou avec 0, ou avec des "-", ou autre chose en ligne de séparation pour alerter ?
Attention au résultat si tu dois faire des courbes. Tester avant de répondre.
5) faut-il un rapport des date-heure début et fin des lignes supprimées ?
Le gros du programme est fait, il ne manque que la restitution et je suis bloqué là dessus. Merci de répondre aux 5 points en les numérotant.
eric
Seulement on a beaucoup parlé du résultat intermédiaire que tu envisageais, mais peu (ou alors très dispersé dans les 20 posts) du résultat final.
Vu que je me passe de cette étape intermédiaire bloquante sur 2000, j'aimerais une synthèse du résultat final style :
groupage nature Débit Taux Vitesse
01/10/2012 00:05:59 15 2 92
01/10/2012 00:11:59 12 1 97
01/10/2012 00:17:59 16 1 93
1) Tes titres de colonnes sont erronés par rapport au csv pour Date, Heure.
csv : jour, sequence là où tu as mis : groupage nature
Quels titres exacts veux-tu ?
2) Si il manque 1 ou 2 données :
- on laisse vide ?
- on remplace par 0 ? par "-" ou autre chaine ?
- on supprime la ligne ?
- autre chose ?
3) il manque les 3 données : à partir de combien de lignes vides consécutives supprime-t-on les lignes ?
4) doit-on laisser une ligne vide, ou avec 0, ou avec des "-", ou autre chose en ligne de séparation pour alerter ?
Attention au résultat si tu dois faire des courbes. Tester avant de répondre.
5) faut-il un rapport des date-heure début et fin des lignes supprimées ?
Le gros du programme est fait, il ne manque que la restitution et je suis bloqué là dessus. Merci de répondre aux 5 points en les numérotant.
eric
Bonjour et merci encore de ton aide.
1) Pour les titres, peu importe. groupage nature Débit Taux Vitesse me va.
2), 3) et 5) Il ne manque jamais de données sur une meme ligne. Par contre, il manque systématiquement des lignes dans le tableau. Il ne faut jamais supprimer de lignes.
4) Les lignes à rajouter (pour conserver le pas de 6') pourraient être complétées par la date et l'heure (avec cellules correspondantes rouges pour avertir). Par contre, il ne faut pas rajouter de données (surtout pas 0).
5bis) le rapport peut donner le nombre total de lignes du tableau et le nombre de lignes ajoutées.
voila
1) Pour les titres, peu importe. groupage nature Débit Taux Vitesse me va.
2), 3) et 5) Il ne manque jamais de données sur une meme ligne. Par contre, il manque systématiquement des lignes dans le tableau. Il ne faut jamais supprimer de lignes.
4) Les lignes à rajouter (pour conserver le pas de 6') pourraient être complétées par la date et l'heure (avec cellules correspondantes rouges pour avertir). Par contre, il ne faut pas rajouter de données (surtout pas 0).
5bis) le rapport peut donner le nombre total de lignes du tableau et le nombre de lignes ajoutées.
voila
Pour les données manquantes sur les lignes ajoutées à postériori, je peux les rajouter à la main.
Ca serait difficile de "générer" des données à partir de tendances des jours prédédents, et ca pourrait être faux, surtout si le créneau manquant est long.
Si, je fais des analyses journalieres ou hebdomadaires, je selectionnerai des données completes. Si je fais des analyses trimestrielles, s'il manques 40 lignes sur 22k lignes, c'est pas grave, les tendances restent les memes.
Ca serait difficile de "générer" des données à partir de tendances des jours prédédents, et ca pourrait être faux, surtout si le créneau manquant est long.
Si, je fais des analyses journalieres ou hebdomadaires, je selectionnerai des données completes. Si je fais des analyses trimestrielles, s'il manques 40 lignes sur 22k lignes, c'est pas grave, les tendances restent les memes.
Il ne faut jamais supprimer de lignes.
ok, je m'étais embrouillé. C'est d'autant plus simple comme ça
Nouvelle question :
En premier lieu je pars de la 1ère date-heure et je génère d'office toutes les date-heure par pas de 6'.
En fonction de la date-heure lue sur une ligne du csv (date2), je calcule le numéro de lig de donnée avec : lig = Round((date2 - date1) / sixMinutes + 1, 0)
date1=date_heure initiale lue en ligne 2 du csv
Est-ce que toutes les données respectent le même pas ?
En cas d'interruption par exemple, est-ce que je ne risque pas de trouver une heure absente et me retrouver avec un décalage? Ca obligera à gérer plusieurs date-heure initiales et c'est un gros boulot...
Et est-ce fréquent ?
Je pourrais sans doute t'envoyer dans la journée une 1ère version qui ne traite pas ce cas que tu commences les tests sur des gros fichiers. A comparer avec les résultats que tu as traité à la main .
eric
ok, je m'étais embrouillé. C'est d'autant plus simple comme ça
Nouvelle question :
En premier lieu je pars de la 1ère date-heure et je génère d'office toutes les date-heure par pas de 6'.
En fonction de la date-heure lue sur une ligne du csv (date2), je calcule le numéro de lig de donnée avec : lig = Round((date2 - date1) / sixMinutes + 1, 0)
date1=date_heure initiale lue en ligne 2 du csv
Est-ce que toutes les données respectent le même pas ?
En cas d'interruption par exemple, est-ce que je ne risque pas de trouver une heure absente et me retrouver avec un décalage? Ca obligera à gérer plusieurs date-heure initiales et c'est un gros boulot...
Et est-ce fréquent ?
Je pourrais sans doute t'envoyer dans la journée une 1ère version qui ne traite pas ce cas que tu commences les tests sur des gros fichiers. A comparer avec les résultats que tu as traité à la main .
eric
Arf, je ne suis pas sur d'avoir bien compris la question.
Toutes les données respectent le même pas de 6', 24h/24 et 7j/7.
Les interruptions peuvent être > à 1 heure, même si c'est plutot rare (panne de réseau, maintenance, etc...)
Es-ce fréquent ? Si tu parles des "trous" de données, il y en a systématiquement.
Ca peut être entre une 40aine de lignes pour les "meilleurs", bcp plus pour les pires.
C'est pour ça que le nombre de lignes ajoutées m'interesse, cela préjuge de la qualité du fichier...
Toutes les données respectent le même pas de 6', 24h/24 et 7j/7.
Les interruptions peuvent être > à 1 heure, même si c'est plutot rare (panne de réseau, maintenance, etc...)
Es-ce fréquent ? Si tu parles des "trous" de données, il y en a systématiquement.
Ca peut être entre une 40aine de lignes pour les "meilleurs", bcp plus pour les pires.
C'est pour ça que le nombre de lignes ajoutées m'interesse, cela préjuge de la qualité du fichier...
Les interruptions peuvent être > à 1 heure, même si c'est plutot rare
C'est bien là la question.
Dernière donnée : 0:05:59, arrêt d'environ 1 h .
Chance quasi nulle qu'on retombe dans les mêmes date-heure non ?
Les données suivantes seront inscrite par exemple à 01:17:59 alors que la donnée réelle sera peut-être 01:19:15.
Ca ne te pose pas de pb ?
eric
C'est bien là la question.
Dernière donnée : 0:05:59, arrêt d'environ 1 h .
Chance quasi nulle qu'on retombe dans les mêmes date-heure non ?
Les données suivantes seront inscrite par exemple à 01:17:59 alors que la donnée réelle sera peut-être 01:19:15.
Ca ne te pose pas de pb ?
eric
Non, les pas sont toujours de 6' et les trous sont toujours des multiples de 6'
les données sont toujours enregistrées aux mêmes heures, le pas est régulier.
tu peux générer d'office toutes les date-heure par pas de 6'.
Du 1er octobre 2012 au 31 décembre 2012, tous les tableaux doivent contenir 22081 lignes, qui sont le nombre d'occurrences de 6 min durant ces 3 mois.
Le tableau généré doit donc contenir 22081 lignes, avec les lignes vides qui correspondent aux trous dans les données.
les données sont toujours enregistrées aux mêmes heures, le pas est régulier.
tu peux générer d'office toutes les date-heure par pas de 6'.
Du 1er octobre 2012 au 31 décembre 2012, tous les tableaux doivent contenir 22081 lignes, qui sont le nombre d'occurrences de 6 min durant ces 3 mois.
Le tableau généré doit donc contenir 22081 lignes, avec les lignes vides qui correspondent aux trous dans les données.
Désolé mais je n'aime pas mettre de titres qui ne correspondent pas aux données. J'ai donc mis : jour, sequence
J'ai oublié le rouge, je verrais ça ce soir.
Dans le rapport faut-il le nombre de lignes vides ?
A tester en long en large et à travers : https://www.cjoint.com/?DAFqZctlpRL
Accepte jusqu'à 250 jours, soit 8 mois. Limite de 2000 mais qui te suffira donc.
Si tu peux ressortir les anomalies tant que c'est frais dans ma tête.
eric
edit: regarde les date-heure sur de gros fichiers. Il y a souvent des erreurs d'arrondi difficiles à maitriser sur la seconde.
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
J'ai oublié le rouge, je verrais ça ce soir.
Dans le rapport faut-il le nombre de lignes vides ?
A tester en long en large et à travers : https://www.cjoint.com/?DAFqZctlpRL
Accepte jusqu'à 250 jours, soit 8 mois. Limite de 2000 mais qui te suffira donc.
Si tu peux ressortir les anomalies tant que c'est frais dans ma tête.
eric
edit: regarde les date-heure sur de gros fichiers. Il y a souvent des erreurs d'arrondi difficiles à maitriser sur la seconde.
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Bonjour Eric,
Apres avoir testé ton fichier, j'ai une erreur d'exécution '13' (Incompatibilité de type) à cette ligne:
[A2].Resize(UBound(datas, 2), UBound(datas)) = Application.Transpose(datas)
Par contre, j'ai un doute sur l'ordre des colonnes. Tu écris : "Désolé mais je n'aime pas mettre de titres qui ne correspondent pas aux données. J'ai donc mis : jour, sequence"
Sur mes CSV, la 1ere colonne "jour" comporte les valeurs "ouvré, samedi ou dimanche". La colonne séquence est un N (je sais même pas a quoi ceci correspond pour te dire).
La colonne groupage est bien la date de la prise de mesure.
La colonne nature est bien l'heure de la prise de mesure.
Ca pourrait pas venir de là ?
Apres avoir testé ton fichier, j'ai une erreur d'exécution '13' (Incompatibilité de type) à cette ligne:
[A2].Resize(UBound(datas, 2), UBound(datas)) = Application.Transpose(datas)
Par contre, j'ai un doute sur l'ordre des colonnes. Tu écris : "Désolé mais je n'aime pas mettre de titres qui ne correspondent pas aux données. J'ai donc mis : jour, sequence"
Sur mes CSV, la 1ere colonne "jour" comporte les valeurs "ouvré, samedi ou dimanche". La colonne séquence est un N (je sais même pas a quoi ceci correspond pour te dire).
La colonne groupage est bien la date de la prise de mesure.
La colonne nature est bien l'heure de la prise de mesure.
Ca pourrait pas venir de là ?
https://www.cjoint.com/?DBdipxMLBQ6
ci-joint l'intitulé des colonnes dans la plupart des cas.. Car j'ai remarqué que quelques fichiers comportaient une colonne supplémentaire...
ci-joint l'intitulé des colonnes dans la plupart des cas.. Car j'ai remarqué que quelques fichiers comportaient une colonne supplémentaire...
Bonjour,
Par contre, j'ai un doute sur l'ordre des colonnes
Tu ouvres mal ton csv. Le séparateur est 'Tab' et non 'espace'. 'Nature de mesure' compte pour 3 champs pour toi...

Les libellé sont quand même plus logiques...
De toute façon tu n'as pas à t'en soucier, c'est la macro qui lit le fichier (mais pas dans excel à cause de ta limitation sur 2000). Et si tu préfères d'autres titres tu peux les modifier (ils sont en fin de macro)
Apres avoir testé ton fichier, j'ai une erreur d'exécution '13' (Incompatibilité de type) à cette ligne
Sur le fichier csv de test que tu as as fourni ? Là je serai embêté, ça serait une autre limitation de 2000 (que je n'ai pas et que je ne connais pas)
Sinon fournir le fichier csv en défaut (réduit si possible, tout en ayant l'erreur).
eric
Par contre, j'ai un doute sur l'ordre des colonnes
Tu ouvres mal ton csv. Le séparateur est 'Tab' et non 'espace'. 'Nature de mesure' compte pour 3 champs pour toi...

Les libellé sont quand même plus logiques...
De toute façon tu n'as pas à t'en soucier, c'est la macro qui lit le fichier (mais pas dans excel à cause de ta limitation sur 2000). Et si tu préfères d'autres titres tu peux les modifier (ils sont en fin de macro)
Apres avoir testé ton fichier, j'ai une erreur d'exécution '13' (Incompatibilité de type) à cette ligne
Sur le fichier csv de test que tu as as fourni ? Là je serai embêté, ça serait une autre limitation de 2000 (que je n'ai pas et que je ne connais pas)
Sinon fournir le fichier csv en défaut (réduit si possible, tout en ayant l'erreur).
eric
ah oui, exact pour les noms de colonne :D
Je t'enverrais bien un original par mail (5Mo env)...
Sinon, du bureau, difficile de trouver un site de DDL qui ne soit pas filtré... (cjoint.com n'est pas filtré, c'est miraculeux mais les fichiers trop volumineux ne peuvent pas être envoyés)
chingy1997 at yahoo.fr
Je t'enverrais bien un original par mail (5Mo env)...
Sinon, du bureau, difficile de trouver un site de DDL qui ne soit pas filtré... (cjoint.com n'est pas filtré, c'est miraculeux mais les fichiers trop volumineux ne peuvent pas être envoyés)
chingy1997 at yahoo.fr
Bonjour Eric,
Ça veut pas... J'ai ce message d'erreur (le même qu'hier), mais à une ligne différente..
https://www.cjoint.com/?DBehHzN16vM
La ligne surlignée est celle ci :
C'est rageant car ça a l'air de marcher chez toi.
Ça veut pas... J'ai ce message d'erreur (le même qu'hier), mais à une ligne différente..
https://www.cjoint.com/?DBehHzN16vM
La ligne surlignée est celle ci :
If Application.Version >= 11 Then
C'est rageant car ça a l'air de marcher chez toi.
petite précision certainement sans importance.. Quand j'ouvre ton fichier, il me demande de confirmer d'activer les macro, ce que je fais, et il ouvre 2 fichiers ! un fichier nommé Classeur1 et ton fichier...
https://www.cjoint.com/?DBehXa4V6vk
Cf barre des taches
https://www.cjoint.com/?DBehXa4V6vk
Cf barre des taches
ouais, ça fonctionne au poil, même sur des fichiers de mauvaise qualité. Je vais en tester d'autres, bien sur...
J'ai transféré ta macro dans mon classeur de macro :D
Maintenant que celle ci est aboutie, je vais essayer de me faire un bouton dans les menus d'excel, je crois que c'est possible. (enfin, j'en suis sur car j'en ai déjà un dans ma version d'excell)
Encore merci a toi pour ta générosité et son talent :)
Bravo
J'ai transféré ta macro dans mon classeur de macro :D
Maintenant que celle ci est aboutie, je vais essayer de me faire un bouton dans les menus d'excel, je crois que c'est possible. (enfin, j'en suis sur car j'en ai déjà un dans ma version d'excell)
Encore merci a toi pour ta générosité et son talent :)
Bravo
Bonjour,
bouton créé, très pratique...
Si tu n'utilisais pas le bouton pour lancer la macro il est possible que tu ne lançais pas la bonne procédure.
C'est vrai que je n'avais pas mis d'explication, mais ça me paraissait évident. Du coup je me demande si la dernière modif est vraiment nécessaire.
Met en commentaire qcq lignes avec une ' pour tester, elle sera plus rapide :
Maintenant que celle ci est aboutie, je vais essayer de me faire un bouton dans les menus d'excel, je crois que c'est possible. (enfin, j'en suis sur car j'en ai déjà un dans ma version d'excell)
Plus simple, tu peux juste ajouter un raccourci clavier sur la macro principale.
genre le code de la station (en fait les cellules de A1 à E2)
???
Ton fichier csv comporte une ligne de titre, la ligne 2 est une ligne de donnée.
A moins que tu n'aies pas fourni un fichier csv original ? Ce qui ne serait pas terrible...
mais je ne sais pas comment coller les infos dessous, dans les cellules F2 à J2 (pour que j'aie l'info une fois au moins).
Comme je ne sais pas d'où tu sors ces données et que ta capture écran n'apporte rien difficile de répondre.
Le principe est :
range("F2") = ta_donnée
ou en raccourci :
[F2] = ta_donnée
eric
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
bouton créé, très pratique...
Si tu n'utilisais pas le bouton pour lancer la macro il est possible que tu ne lançais pas la bonne procédure.
C'est vrai que je n'avais pas mis d'explication, mais ça me paraissait évident. Du coup je me demande si la dernière modif est vraiment nécessaire.
Met en commentaire qcq lignes avec une ' pour tester, elle sera plus rapide :
' If Application.Version >= 11 Then ' ' excel >= 2003 [A2].Resize(UBound(datas, 2), UBound(datas)) = Application.Transpose(datas) ' Else ' ' excel 2000 ' For lig = 1 To UBound(datas, 2) ' For col = 1 To 5 ' Cells(lig + 1, col) = datas(col, lig) ' Next col ' Next lig ' End If
Maintenant que celle ci est aboutie, je vais essayer de me faire un bouton dans les menus d'excel, je crois que c'est possible. (enfin, j'en suis sur car j'en ai déjà un dans ma version d'excell)
Plus simple, tu peux juste ajouter un raccourci clavier sur la macro principale.
genre le code de la station (en fait les cellules de A1 à E2)
???
Ton fichier csv comporte une ligne de titre, la ligne 2 est une ligne de donnée.
A moins que tu n'aies pas fourni un fichier csv original ? Ce qui ne serait pas terrible...
mais je ne sais pas comment coller les infos dessous, dans les cellules F2 à J2 (pour que j'aie l'info une fois au moins).
Comme je ne sais pas d'où tu sors ces données et que ta capture écran n'apporte rien difficile de répondre.
Le principe est :
range("F2") = ta_donnée
ou en raccourci :
[F2] = ta_donnée
eric
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Re,
Initialement, j'ai bien testé ta macro avec ton bouton... J'avais compris l'utilité du bouton :D
Ce qui me manquerait, c'est d'avoir les données des cellules A1xE2 de ce screen (fichier original que tu as eu) :
https://www.cjoint.com/?DBepzpmQEMm dans le nouveau fichier, a coté du tableau crée (cf screen précédent http://cjoint.com/14fe/DBejHHliidb.htm )
Initialement, j'ai bien testé ta macro avec ton bouton... J'avais compris l'utilité du bouton :D
Ce qui me manquerait, c'est d'avoir les données des cellules A1xE2 de ce screen (fichier original que tu as eu) :
https://www.cjoint.com/?DBepzpmQEMm dans le nouveau fichier, a coté du tableau crée (cf screen précédent http://cjoint.com/14fe/DBejHHliidb.htm )
J'avais compris l'utilité du bouton :D
Je me disais aussi... ;-)
Donc c'est bien 2000 qui est plus chatouilleux sur les conversions automatiques des variants
Pour le reste voilà :
https://www.cjoint.com/?DBeqXf3mZ7U
Mais les valeurs 'Station Code Station Code Canal Lib Canal Libellé groupage' sont identiques sur toutes les lignes.
Cette valeur n'était pas à copier sur une (ou toutes) ligne ?
Tu n'oublieras pas de mettre en résolu le moment venu
eric
edit: modif du fichier. J'avais été trop généreux et mis tous les noms des champs
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Je me disais aussi... ;-)
Donc c'est bien 2000 qui est plus chatouilleux sur les conversions automatiques des variants
Pour le reste voilà :
https://www.cjoint.com/?DBeqXf3mZ7U
Mais les valeurs 'Station Code Station Code Canal Lib Canal Libellé groupage' sont identiques sur toutes les lignes.
Cette valeur n'était pas à copier sur une (ou toutes) ligne ?
Tu n'oublieras pas de mettre en résolu le moment venu
eric
edit: modif du fichier. J'avais été trop généreux et mis tous les noms des champs
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Bon ben, merci pour ton aide, Eric.
T'es un bon, ya pas a dire :)
A bientôt peut être sur ce forum..
Salutations,
T'es un bon, ya pas a dire :)
A bientôt peut être sur ce forum..
Salutations,
Arf, les valeurs n'apparaissent pas :(
oui, elles sont identiques sur toutes les lignes, mais me faut l(info au moins une fois pour éviter de mélanger les fichiers, surtout quand tu en as plusieurs ouverts en même temps.
ex:
Station Code Station Code Canal Lib Canal Libellé groupage
S22____MB133.B_______1_______5009.01 1 ______5009.01 1
je suis pénible, je sais
oui, elles sont identiques sur toutes les lignes, mais me faut l(info au moins une fois pour éviter de mélanger les fichiers, surtout quand tu en as plusieurs ouverts en même temps.
ex:
Station Code Station Code Canal Lib Canal Libellé groupage
S22____MB133.B_______1_______5009.01 1 ______5009.01 1
je suis pénible, je sais