Problème matricielle

Peux-tu me donner un fichier même partiel avec uns structure différente ?

Peux-tu me donner un fichier même partiel avec uns structure différente ?

voici les deux fichiers qui sont susceptible d'avoir (test colonne 2 est le mien)

11desktop.rar (583.18 Ko)

Certains colonnes (non utiles pour le TCD) n'ont pas non plus le même nom.

Le TCD s'appuie sur des colonnes dont la dénomination ne peut pas changer.

Je pense que ce sera difficile de laisser choisir.

Je propose plutôt de comparer les en-têtes entre le fichier de base -duquel j'ai supprimé 4 colonnes qui ne sot pas utiles et font la différence entre les 2 fichiers- et le fichier texte importé et ne mettre à jour colonne par colonne que celles dont la comparaison est ok.

Certains colonnes (non utiles pour le TCD) n'ont pas non plus le même nom.

Le TCD s'appuie sur des colonnes dont la dénomination ne peut pas changer.

Je pense que ce sera difficile de laisser choisir.

Je propose plutôt de comparer les en-têtes entre le fichier de base -duquel j'ai supprimé 4 colonnes qui ne sot pas utiles et font la différence entre les 2 fichiers- et le fichier texte importé et ne mettre à jour colonne par colonne que celles dont la comparaison est ok.

En fait si je comprends bien, au moment de l'importation, ça va placer les valeurs dans les colonnes correspondante peu importe le fichier texte?

oui

je vais finaliser demain matin à l'aube

c'est le fichier d'importation qui sera le maître et puisera dans le fichier texte les colonne ayant les mêmes valeurs en ligne 1 et 2

Bonjour,

Vérifie qu'il n'y a pas de décalage d'un jour par exemple ou d'une heure

10meteo-2020-v2.xlsm (255.98 Ko)

Bonjour,

Je viens de finir de le tester, j'ai des importations sans suivre les mois chronologiques, si c'est du 1min ou 10min et si s'était des relevés avec des colonnes différente et il ne bronche pas, impec. J'ai aussi regardé comme tu me l'as demandé et je n'ai pas vu de décalage toutefois j'ai une petite question, le changement d'heure opère à 00h le jour du changement d'heure ou au à l'heure exacte?

Ah si je viens de voir un décalage de la colonne Heure6 dès que c'est l'heure d'été, si L'UTC est à 13h00, l'autre colonne reste à 12h mais change bien en heure d'hiver.

Petite chose aussi, serait-il possible que dans le Tab récap on peut ajouter les nombres de jours sur les températures, précipitations et vent?

En tout cas c'est un très beau joujou, encore un grand merci

Ah si je viens de voir un décalage de la colonne Heure6 dès que c'est l'heure d'été, si L'UTC est à 13h00, l'autre colonne reste à 12h mais change bien en heure d'hiver.

Je n'ai pas saisi, peux-tu mettre un exemple en exergue ? J'avais vérifié a priori les heures se calaient correctement ...

A priori ça serait au changement d'heure(heure d'été) que ça le fait.

Je t'ai fait une capture d'écran où j'ai vu le problème

9datedecal.rar (259.72 Ko)

Où est l'erreur ?

Le 29 mars à 1h50 (heure d'hiver) il est 0h50 UTC

ensuite à 3h00 (heure d'été) il est bien 1h00 UTC

Ensuite, la colonne heure6 sont des arrondis parce que tu souhaitais que la quantité de pluie soit mesurée sur 1 heure (et pas en heure glissante comme je l'avais fait au début).

Ah d'accord ok ben en fait nul part

bon ben il n'y a plus qu'à le comprendre encore mieux alors

Est-ce possible d'intégrer à l'onglet TabRecap les nombres de jours sur les températures, précipitations et vent mais mensuel ?

Est-ce possible d'intégrer à l'onglet TabRecap les nombres de jours sur les températures, précipitations et vent mais mensuel ?

L'onglet TabRecap est structuré en jours : 366 ou 365+1

On peut y joindre une table mensuelle, ou faire un onglet TabRecapJour et un onglet TabRecapMois

8meteo-2020-v2.xlsm (262.71 Ko)

mais là où je ne comprends pas bien, c'est que cet onglet par mois existe déjà ! c'est le Récapitulatif

Est-ce possible d'intégrer à l'onglet TabRecap les nombres de jours sur les températures, précipitations et vent mais mensuel ?

L'onglet TabRecap est structuré en jours : 366 ou 365+1

On peut y joindre une table mensuelle, ou faire un onglet TabRecapJour et un onglet TabRecapMois

mais là où je ne comprends pas bien, c'est que cet onglet par mois existe déjà ! c'est le Récapitulatif

Oui en fait s'était pour pouvoir exporter les valeurs comme pour TabRecapJour !

Comme tu as fait ça me va très bien après si tu veux y améliorer il n'y a pas de soucis

Par contre petite question, est-ce qu'il y a une limite de ligne lors de l'importation car pour un fichier qui a un pas d'enregistrement toute les minutes ça fait environ 528000 et vu qu'il faudrait prendre Décembre année précédente et Janvier année après comme par exemple pour 2020. Je te dis ça c'est pour l'éventualité si il y a importation de toute une année entière.

Je pense que cela devrait passer avec 572000 lignes. On peut encore augmenter cette valeur qui est dans la macro.

Je pense que cela devrait passer avec 572000 lignes. On peut encore augmenter cette valeur qui est dans la macro.

J'ai fais le calcul et j'arriverais à environ 618000. Si il n'y a juste qu'à augmenter cette valeur c'est dans mes cordes

Je te pose la question, après c'est juste comme ça. Je te mets ce fichier en pièce jointe, c'est pour le calcul de l'ensoleillement en fonction de la température et du rayonnement solaire mais également d'autres paramètres. Est-ce que tu pense que c'est possible de le faire en TCD ?

J'ai essayé de mettre plus d'information pour mieux comprendre le fonctionnement

7ensoleillement.zip (25.85 Ko)

J'ai fais le calcul et j'arriverais à environ 618000. Si il n'y a juste qu'à augmenter cette valeur c'est dans mes cordes

j'ai trouvé comment le rendre variable, je vais modifier la macro

Je te pose la question, après c'est juste comme ça. Je te mets ce fichier en pièce jointe, c'est pour le calcul de l'ensoleillement en fonction de la température et du rayonnement solaire mais également d'autres paramètres. Est-ce que tu pense que c'est possible de le faire en TCD ?

J'ai essayé de mettre plus d'information pour mieux comprendre le fonctionnement

je regarde demain

pour le calcul de l'ensoleillement en fonction de la température et du rayonnement solaire mais également d'autres paramètres. Est-ce que tu pense que c'est possible de le faire en TCD ?

Si j'ai bien compris (et ce n'est pas certain !), je répondrais non.

En fait un TCD ne fait pas de calcul complexe,

  • il regroupe les données par "paquets" avec différents angles de vue (les lignes, les colonnes et les filtres du TCD),
  • et applique sur ces "paquets" de données des calculs simples comme le nombre, la somme, la valeur max, la valeur min.

Et c'est tout ! Mais c'est quand même puissant car cela évite des formules matricielles complexes, et cela fait le calcul en un seul coup à la demande (actualiser le TCD) donc sans ralentissement d'excel lors d'ajout de nouvelles données.

J'ai fais le calcul et j'arriverais à environ 618000. Si il n'y a juste qu'à augmenter cette valeur c'est dans mes cordes

j'ai trouvé comment le rendre variable, je vais modifier la macro
Option Explicit

Sub lancer()
Dim wb As Workbook, ws As Worksheet, donnees As Variant

    Sheets("Bdd").Select
    Set wb = ThisWorkbook
    Set ws = ActiveSheet

    Sheets("Bdd").Select
    Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
    If Not ws.ListObjects(1).DataBodyRange Is Nothing Then
        If MsgBox("Voulez-vous supprimer toutes les données ?", vbYesNo, "Demande de confirmation") = vbYes Then ws.ListObjects(1).DataBodyRange.Delete
    End If
    If ws.ListObjects(1).DataBodyRange Is Nothing Then Range("A5").Select

    ' choix du fichier source (texte)
    donnees = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    If donnees = False Then Exit Sub

    ' importation des données
    Extraction donnees, vbTab

    ' actualisation des TCD
    Sheets("TCD 0h-0h").PivotTables(1).PivotCache.Refresh
    Sheets("Récapitulatif").Select

End Sub

Sub Extraction(Fichier As Variant, Separateur As Variant)
    Dim Tableau() As String
    ' en-têtes, pour t2 on trouvera en t2(3,i) la correspondance des colonnes utiles
    Dim t1, t2(1 To 3, 1 To 35)  ' 35 colonnes maxi fichier texte
    Dim Resultat, nCol%
    Dim ContenuLigne As String
    Dim i As Integer, ii As Integer ' colonnes
    Dim j As Double  ' lignes

    t1 = Sheets("Bdd").Range("A1:AD2")

    Open Fichier For Input As #1
        j = 1
        Do While Not EOF(1)
            Line Input #1, ContenuLigne

            Tableau = Split(ContenuLigne, Separateur)
            nCol = UBound(Tableau) + 1

            Select Case True

                Case j <= 2 ' en-têtes du fichier texte
                    For i = 0 To UBound(Tableau)
                        t2(j, i + 1) = Tableau(i)
                    Next i
                    If j = 1 Then ReDim Resultat(1 To nCol, 1 To 1)
                    If j = 2 Then ' recherche de correspondance
                        For i = 1 To 35
                            t2(3, i) = ""
                            For ii = 1 To UBound(t1, 2)
                                If t1(1, ii) & " " & t1(2, ii) = t2(1, i) & " " & t2(2, i) Then
                                    t2(3, i) = ii ' colonne i texte correspond à colonne ii xlsm
                                End If
                            Next
                        Next
                    End If

                Case j > 2 ' données
                    ReDim Preserve Resultat(1 To nCol, 1 To j - 2)
                    For i = 0 To UBound(Tableau)
                        If t2(3, i + 1) <> "" Then ' il existe une correspondance
                            If i = 0 Then 'date
                                Resultat(t2(3, i + 1), j - 2) = CDbl(DateSerial("20" & Mid(CStr(Tableau(i)), 7, 2), Mid(CStr(Tableau(i)), 4, 2), Mid(CStr(Tableau(i)), 1, 2)))
                            Else
                                Resultat(t2(3, i + 1), j - 2) = Tableau(i)
                            End If
                        End If
                    Next i

            End Select

            j = j + 1
        Loop
    Close #1
    Resultat = Application.Transpose(Resultat)
    Selection.Resize(UBound(Resultat), UBound(Resultat, 2)) = Resultat

End Sub

Sub raz()
    Sheets("Bdd").Select
    If Not ActiveSheet.ListObjects(1).DataBodyRange Is Nothing Then ActiveSheet.ListObjects(1).DataBodyRange.Delete
    Sheets("TCD 0h-0h").PivotTables(1).PivotCache.Refresh
End Sub
12meteo-2020-v2.xlsm (263.85 Ko)

Ok super je te remercie pour la modif

ah ok d'accord par ailleurs je suis en train de faire quelques recherches sur ce sujet car je voudrais intégrer ce paramètre si possible. Toutefois, pour ce calcul, je pense qu'il faudrait faire comme pour le cumul max sur 1h, faire un calcul annexe et faire le TCD juste pour la réception des données. Je vais voir si je trouve plus d'information sur ce sujet et je te recontacte en tout cas je te remercie énormément pour ton aide précieuse

Rechercher des sujets similaires à "probleme matricielle"