[RESOLU] créer fichier txt et y mettre données d'un Dico

cathodique

XLDnaute Barbatruc
Bonsoir,
VB:
''trouver ce qui manque
    For Each cle In Tres
        If Not DicTest.Exists(cle) Then
        Dtres(cle) = Dtres(cle)
        End If
    Next cle
        
     If Dtres.Count > 0 Then
'    MsgBox Dtres.Count
'    ligne = 1   ''''''''
'    Do While ligne <= Dtres.Count   ''''''''
'    Open ThisWorkbook.Path & "\" & "Archive des BD" & "\" & "Mesures" & "\" & "Manquants" & ".txt" For Output As #ligne '''''''
'    Print #ligne, cle & "  " & Dtres.item(cle) & vbCrLf  '''''''
'    Close   '''''''
'    ligne = ligne + 1   ''''''
'Loop    '''''

'    Feuil29.Range("A2").Resize(Dtres.Count, 1) = Application.Transpose(Dtres.keys) 'ceci juste pour un test
' données à compléter
    For Each cle In Dtres.keys
    Z = Z & "L'objet   " & cle & "  " & Dtres.item(cle) & " manquant !!" & vbLf
    Next cle
      Else
      MsgBox "BD à jour"
    End If
    MsgBox Z
Avec cette partie de code, un MsgBox me renvoie les données manquantes d'une Bd par rapport à une autre.
Vu le nombre important de données manquantes, je voudrais renvoyer le résultat dans un fichier texte.
Mes recherches et essais ont été vains.
En vous remerciant.

ps: pour le fichier à joindre, désolé ça me prendrait un temps fou pour en construire un.
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : créer fichier txt et y mettre données d'un Dico

Salut cathodique,

Pas scruté ton bloc commenté et pas testé non plus ... donc, peut-être que je vais me vautrer en beauté, mais au départ de
Code:
Feuil29.Range("A2").Resize(Dtres.Count, 1) = Application.Transpose(Dtres.keys)
... tu ne peux pas simplement "Enregistrer sous" au format .txt?
 

cathodique

XLDnaute Barbatruc
Re : créer fichier txt et y mettre données d'un Dico

Merci pour ton retour. J'aurais dû préciser que je ne veux pas utiliser une feuille intermédiaire. J'ai, en effet mis le résultat sur une feuille, mais c'était pour vérifier que le résultat était bon.

Je voudrais, si c'est possible mettre les lignes du dictionnaire dans un fichier texte.

Merci et bonne soirée.
 

Paf

XLDnaute Barbatruc
Re : créer fichier txt et y mettre données d'un Dico

bonjour cathodique, Modeste

a priori :
Code:
....
For Each cle In Tres
     If Not DicTest.Exists(cle) Then
     Dtres(cle) = Dtres(cle)
     End If
Next cle

num = FreeFile
Open ThisWorkbook.Path & "\" & "Archive des BD" & "\" & "Mesures" & "\" & "Manquants.txt" For Output As #num
If Dtres.Count > 0 Then
    For Each cle In Dtres.keys
        Print #num, "L'objet   " & cle & "  " & Dtres(cle) & " manquant !!"
    Next cle
Else
    Print #num, "BD à jour"
End If
Close #num
...

à noter que l'instruction Dtres(cle) = Dtres(cle) affecte un item vide à la clé cle; Dtres(cle) est l'item , avec Dtres(cle) = quelque chose, on affecte une valeur, mais si ce quelque chose est Dtres(cle) qui est vide .....

A+
 

cathodique

XLDnaute Barbatruc
Re : créer fichier txt et y mettre données d'un Dico

Bonsoir Paf,;);););)

C'est exactement le résultat escompté. C'est parfait.

Je te remercie aussi pour tes explications. Je ne maîtrise pas très bien ni les dictionnaires, ni les tableaux.

En posant mon problème, je l'avais mal énoncé. J'ai remarqué que plus le problème est complexe moins sont les solutions proposées.

J'ai dû procéder par parties et reconstituer un code qui fonctionne. Donc au final, je me retrouve avec des codes pas très "jolis" mais qui ne donnent satisfaction.

Encore merci pour ton code et tes explications.

Bonne soirée.
 

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa