Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Insertion CSV dans un tableau en VBA

richbike87

XLDnaute Nouveau
Bonjour à tous,

Je suis sur un projet de conversion de point GPS en LAMBERT93.
Cependant, je n'arrive pas à intégrer mon fichier CSV dans mon tableau Excel, cela ne me copie que la première ligne. Or je souhaite que la copie se fasse à partir de la deuxième ligne.

Ensuite, je souhaite créer un export des valeurs trouvées (après conversion) dans un nouveau fichier CSV, et qui supprimerait les valeurs du tableau pour recommencer l'opération avec d'autres fichiers.

En pièces jointes, le tableur Excel avec le code VBA d'insertion du CSV et un CSV.

Par avance merci de votre aide si précieuse
 

Pièces jointes

  • Test1.xlsm
    17.4 KB · Affichages: 7
  • st saulve1.zip
    331 bytes · Affichages: 7
Solution
Tiens j'ai pris le temps de te corriger tes fonctions de conversion et d'export
VB:
Sub Conversion()
Dim lg As Integer, i As Integer, lat As Single, lng As Single, Resultat As L93
    With Sheets("Feuil1")
        lg = .Cells(Rows.Count, "C").End(xlUp).Row
        For i = 3 To lg
            lat = .Range("C" & i).Value 'Replace(.Range("C" & i).Value, ".", ",")
            lng = .Range("D" & i).Value 'Replace(.Range("D" & i).Value, ".", ",")
           
            Resultat = Lambert93(lat, lng)
           
            .Range("G" & i).Value = Resultat.X
            .Range("H" & i).Value = Resultat.Y
            'Définit le texte d'export pour le csv en colonne "J"
            .Range("J" & i).Value = .Range("B" & i).Value & "," &...

richbike87

XLDnaute Nouveau
Je progresse petit à petit sur le code VBA mais je n'arrive pas à trouver comment mettre la colonne E en dernier sur le fichier CSV.
Et je souhaiterais mettre le nom du premier fichier avec la date lors de la sauvegarde.
Je pense que mon code peut être réduit, mais je ne m'y connais pas assez pour le réduire.
Dernière étape que je pense pouvoir réaliser toutes les étapes en une seule fois.

Merci pour votre aide
 

Pièces jointes

  • Test2.xlsm
    38.1 KB · Affichages: 3

Deadpool_CC

XLDnaute Accro
Salut,
dans ton code vba, je t'ai fais ton format d'export en colonne "J" lors de la conversion
j'ai donc changé le code dans Export (sélection plus simple, ...)

il ne te reste plus à l'import à stocker ton nom de fichier en A1 pour pouvoir le réutiliser à l'export pour constituer ton nom de fichier final (et penser à vider A1 à la fin aussi)

ps : fait pour être raccord avec ta manière de faire. L'autre manière aurais été de créer un fichier texte et faire la boucle de remplissage ligne par ligne de ton csv.

A+
 

Pièces jointes

  • Test2.xlsm
    37.5 KB · Affichages: 2

richbike87

XLDnaute Nouveau
Bonjour @Deadpool_CC
Merci pour le temps consacré.
Je viens d'essayer ton export, il ne me copie que la première ligne du TabExport. Étant simple débutant en VBA je ne vois pas trop ou se situe le problème. Peut-être, tu saurais me l'expliquer.

A+
 

Deadpool_CC

XLDnaute Accro
J'avais pas fait gaffe mais quand j'ajoute les formules dans les cellules le tableau automatique 'TabExport' ne s'étend pas. Grrr

Dans l'export je sélectionne le "tableau Export" pour le copier Coller et donc pas étendu donc copie uniquement de la ligne

en VBA j'ai redéfinir la plage du tableau et enlevé la ligne totaux qui s'ajoute (sans raison logique
 

Pièces jointes

  • Test2.xlsm
    38.6 KB · Affichages: 1

Deadpool_CC

XLDnaute Accro
A zut ... c'est parce que le tableau à la ligne de totaux qui s'active toute seule quand on ajoute un formule.
je ne sais pas comment désactiver cela

Donc c'est pas la bonne solution.
il va falloir calculer directement le texte résultat et le coller dans la .value au lieu de coller la fomrule dans la cellule.
je regarde cela dès que j'ai 10 min. devant moi
 

Deadpool_CC

XLDnaute Accro
Après moultes recherches, je ne trouve pas les instructions permettant d'afficher le nom du fichier initial dans la cellule A1.
j'ai pas le fichier sous la main mais au moment de l'import du csv tu dois avoir ton nom de fichier dans une variable pour pouvoir l'ouvrir.
il suffit normalement de faire Range(A1").value = variableDuNomDeFichier
Si KO fait moi signe, je regarderais plus tard.
 

richbike87

XLDnaute Nouveau
Malheureusement cela affiche le chemin complet et non l'intitulé du fichier.
J'attends ton retour et verrai cela demain matin.
Encore merci
 

Deadpool_CC

XLDnaute Accro
dans l'import j'ai ajouter dans ta fonction
VB:
ActiveSheet.Range("A1").Value = Right(selectedFile, Len(selectedFile) - InStrRev(selectedFile, "\", -1, 1))

et dans l'export j'ai modifié pour
Code:
NomEtCheminFichier = "Export_" & Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2) & "_" & ActiveSheet.Range("A1").Value

Avec cela on devrait être bon

ps : si Ok, pense à taguer le post correspondant comme solution
 

Pièces jointes

  • Test2 (1).xlsm
    36.4 KB · Affichages: 2

richbike87

XLDnaute Nouveau
Bonjour à tous,
Je continue dans la recherche et le développement de mon petit utilitaire.
Je recherche maintenant à sortir un fichier DXF des différents points créé dans le fichier de sortie, mais mes recherches sur le net reste pour le moment infructueuses.
Si quelqu'un a une piste pour ce genre de chose, je suis preneur.
Par avance merci à toute personne essayant de m'aider.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…