Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !
J'ai peut-être loupé quelque chose, mais je ne vois pas comment tu procèdes pour effectuer cette importation. 🙁Dans les faits, à tous les jours j'importe des CSV avec des nombres d'entrées différents où je dois penser à intervenir manuellement!
Évidemment que les formules retournent des erreurs : elles sont fausses par rapport aux autres formules, ou alors elle contiennent des #REF!.Dans le fichier Excel attaché, il y a 4 onglets.
Les 2 premiers sont des imports de CSV ("778_entrées" et "353_entrées")
L'onglet "De_778_à_353" a subit 2 imports. Le premier, un import de 778 entrées, puis un second import de 353 entrées.
Si on regarde les lignes 354 à 779, on voit les formules en erreur.
L'onglet "De_353_à_778" a subit 2 imports. Le premier, un import de 353 entrées, puis un second import de 778 entrées.
Si on regarde les lignes 354 et 355, on voit les formules en erreur.
Merci,Re-,
Regarde déjà ce résultat
2 onglets, 353 et 778
Dans la colonne D, un test obtenu par la requête PQ. Si l'écart entre 2 données est différent de 10 minutes, "NOK", et en rouge
Si déjà, ça répond...
C'est ce que j'essaie d'éviter!Évidemment que les formules retournent des erreurs : elles sont fausses par rapport aux autres formules, ou alors elle contiennent des #REF!.
Tu corriges les formules et tout ira bien.
"Lorsque j’importe un fichier CSV," C'est a dire ?
J'ai peut-être loupé quelque chose, mais je ne vois pas comment tu procèdes pour effectuer cette importation. 🙁
Sub Import_CSV()
Dim NomWbk As String, tb, NbL As Long, NbC As Long
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Relevés CSV (*.csv)", "*.csv"
If .Show = -1 Then NomWbk = .SelectedItems(1)
End With
If NomWbk = "" Then Exit Sub
Application.ScreenUpdating = False
Workbooks.OpenText Filename:=NomWbk, Origin:=xlWindows, DecimalSeparator:=".", _
StartRow:=2, DataType:=xlDelimited, Tab:=True, FieldInfo:=Array(Array(1, 3), Array(2, 1), Array(3, 1))
tb = ActiveSheet.UsedRange.Value2
ActiveSheet.Parent.Close savechanges = False
NbL = UBound(tb, 1): NbC = UBound(tb, 2)
Sh_Relevé.[TS_Relevé].ClearContents
Sh_Relevé.[TS_Relevé].ListObject.Resize [TS_Relevé].Offset(-1).Resize(NbL + 1, NbC)
Sh_Relevé.[TS_Relevé].Value = tb
Application.ScreenUpdating = True
End Sub
Outre le fait que j'ai du humblement regardé la signification de "collige", il serait peut-être bien que tu répondes aux différentes questions que l'on te pose...Merci,
La colonne D est pour apprécier si les données que le système InkBird collige de la température, sont complètes. Par le passé, j'ai eu quelques problème. Les données colligées sont ajoutées dans un autre onglet où je peut faire des requêtes depuis le début le l'année.
Ces données ont été comparées avec les données de ma compagnie d'électricité où j'ai eu des différences de plus de 6 degrés C pendant une heure! Je suis sous un tarif qui varie selon la température. J'ai eu des données pour demander à ma compagnie d'électricité de changer le senseur du compteur d'électricité.
De plus, grâce aux alertes du système InkBied, je m'assure que certaines pièces sont toujours dans la plage des températures voulues.
J'utilise toujours le même onglet pour importer les données de température.
Peut-on demander à Power Query d'utiliser le même onglet?
Merci.
Si, pour toi, c'est clair, tu sais ce que tu veux, nous, on patauge...2.4 – La question doit être posée le plus clairement possible en comprenant bien que le lecteur ne peut pas s’imaginer le problème.
DésoléPas de réponse, donc je ne vois toujours pas comment tu réalises cela, et du coup je fais comme tes formules adjacentes : je ne suis plus (ton fil de discussion).
Bonne soirée
🖖
Bonjour,Bonjour,
Outre le fait que j'ai du humblement regardé la signification de "collige", il serait peut-être bien que tu répondes aux différentes questions que l'on te pose...
Comme tu as sûrement pu voir dans la charte, notamment au paragraphe 2.4 :
Si, pour toi, c'est clair, tu sais ce que tu veux, nous, on patauge...
Dans le fichier que je t'ai proposé, j'ai fait une simple vérification, en supputant que c'était cette vérification que tu voulais obtenir avec tes formules...
Avais-je le bon procédé?
Peut-il y avoir d'autres contrôles (notamment des T°)?
Donc, pour répondre à ta dernière, oui, PQ peut utiliser le même onglet (mais, lequel?)
Pourquoi 778?
Pourquoi 353?
Dans tes deux csv, les dates ne se suivent pas, est-ce que les extractions doivent être combinées?
Ces 2 csv sont-il dans le même répertoire? ce répertoire contient-il d'autres csv?....
Bref, les soucis avec ta compagnie d'électricité, ouais, OK, mais si tu veux qu'on t'aide, il va falloir expliciter un peu plus ton pb avec Excel qu'avec ta compagnie...
Bon courage
Re-,Bonjour,
La simple vérification..., oui, ici je valide si le système InkBird produit toutes les informations. C'est le seul contrôle exercé, à savoir si j'ai bien les températures au 10 minutes.
Les onglets 778 et 353 sont simplement des exemples pour illustrer les erreurs dans les formules quand je ré-importe des données dans l'onglet.
Ici, je voudrais si possible savoir comment éviter ces erreurs lorsque je ré-importe des données.
Les dates ne se suivent pas. Ce n'étaient que des exemples pour démontrer les erreurs que Excel générait lors d'un deuxième import.
J'ai un CSV par jour dans le dossier "Téléchargements" que j'importe (rafraichis) toujours dans le même onglet. Et c'est à ce moment que je m'assure que les données sont complètes.
En fait, la seule demande est comment éviter qu'Excel mette en erreur les formules qui fonctionnaient bien avant le nouvel import.
Merci
Bonjour,Bonsoir ou bonne nuit à toutes & à tous, bonsoir @Dand87
Je te mets en pièce jointe une solution pour importer tes CSV dans un tableau structuré avec du VBA.
le code
VB:Sub Import_CSV() Dim NomWbk As String, tb, NbL As Long, NbC As Long With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False .Filters.Clear .Filters.Add "Relevés CSV (*.csv)", "*.csv" If .Show = -1 Then NomWbk = .SelectedItems(1) End With If NomWbk = "" Then Exit Sub Application.ScreenUpdating = False Workbooks.OpenText Filename:=NomWbk, Origin:=xlWindows, DecimalSeparator:=".", _ StartRow:=2, DataType:=xlDelimited, Tab:=True, FieldInfo:=Array(Array(1, 3), Array(2, 1), Array(3, 1)) tb = ActiveSheet.UsedRange.Value2 ActiveSheet.Parent.Close savechanges = False NbL = UBound(tb, 1): NbC = UBound(tb, 2) Sh_Relevé.[TS_Relevé].ClearContents Sh_Relevé.[TS_Relevé].ListObject.Resize [TS_Relevé].Offset(-1).Resize(NbL + 1, NbC) Sh_Relevé.[TS_Relevé].Value = tb Application.ScreenUpdating = True End Sub
As-tu regarder la solution de @Cousinhub avec Power Query ?
À bientôt
Bonjour,Re-,
Ok, merci pour ces précisions.
Comme tu l'as vu, il n'y a plus besoin de formules, PQ effectue lui-même le contrôle.
Lorsque tu télécharges le csv tous les jours, tu remplaces donc celui de la veille par celui du jour (dans le répertoire), ce qui t'impose donc d'effectuer une vérification tous les jours avec ton fichier excel?
Ou les fichiers s'accumulent dans ce répertoire?
Comment s'appellent ces fichiers?
Je crois deviner que tu es sous Mac???
Je vais essayer de te faire un autre essai, juste avec le fichier de 778 données.
Une piste au vu de tes formules, tu dois faire des suppressions de cellules dans une partie de ton tableau d'import.En fait, la seule demande est comment éviter qu'Excel mette en erreur les formules qui fonctionnaient bien avant le nouvel import
Il y avait une cagade avec les accents j'ai supprimer les accents qui posaient problèmeJ'ai copié l'écran et collé dans le fichier Excel ci-inclus.
Sub Import_CSV()
Dim Sh As Worksheet
Set Sh = Sh_Releve1 'S'assurer du bon codeName de la feuille
Dim NomWbk As String, tb, NbL As Long, NbC As Long
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "RelevŽs CSV (*.csv)", "*.csv"
If .Show = -1 Then NomWbk = .SelectedItems(1)
End With
If NomWbk = "" Then Exit Sub
Application.ScreenUpdating = False
Workbooks.OpenText Filename:=NomWbk, Origin:=xlWindows, DecimalSeparator:=".", _
StartRow:=2, DataType:=xlDelimited, Tab:=True, FieldInfo:=Array(Array(1, 3), Array(2, 1), Array(3, 1))
tb = ActiveSheet.UsedRange.Value2
ActiveSheet.Parent.Close savechanges = False
NbL = UBound(tb, 1): NbC = UBound(tb, 2)
Sh.[TS_Releve].ClearContents
Sh.[TS_Releve].ListObject.Resize [TS_Releve].Offset(-1).Resize(NbL + 1, NbC)
Sh.[TS_Releve].Value = tb
Application.ScreenUpdating = True
End Sub
Il faudra sans doute ajouter un tri du TS sur les dates après l'import ...Les dates ne se suivent pas. Ce n'étaient que des exemples
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?