XL 2019 Insertion CSV dans un tableau en VBA

  • Initiateur de la discussion Initiateur de la discussion richbike87
  • Date de début Date de début

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 !

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

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 & "," &...
LE problème vient de ton CSV
Le ligne sont en saut de ligne Linux "LF" ... faut les passer en Windows "CRLF"
Dans Notepad++ utiliser le remplacer en mode étendu et recherche "\n" et remplace par "\\r\n"
1653479209719.png
Et cela passe après la correction de ton csv à importer
 
Bonjour,

Vous avez 2019, faites le avec PowerQuery, vous pourrez opérer toutes les transformations que vous voudrez.

Dans le fichier ci-joint un exemple.
Pour voir la requête, cliquez dans une cellule du tableau vert puis dans l'onglet 'Requête' qui s'affiche alors sur le ruban (à droite) cliquez sur modifier.

Dans l'étape source, vous changerez le chemin vers le fichier :
1653479633617.png


cordialement
 

Pièces jointes

@Deadpool_CC Je pensais pouvoir utiliser le fichier CSV sans aucune modification, car celui-ci est un export d'une app Android. N'y a-t-il pas possibilité de l'utiliser comme telle ?
Merci pour la commande de suppression.

@Hasco je ne connais pas Power Query c'est pour cela que je voulais utiliser le VBA.

Je vais essayer de creuser un peu plus le sujet afin d'obtenir quelque chose de cohérent.
 
le simple "LF" (fin de ligne) n'est pas géré par la fonction standard "Line Input" que tu utilises
pour Excel il faut absolument le CR (Retour Charriot)
j'avoue que j'ai jamais eu le cas car dans ces cas la je m'arrange pour que mon fichier de données soit propre

peut-être chercher un code VBA pour faire le remplacement avant de traiter
chercher si CRLF présent, sinon remplacer LF par CRLF

J'avoue que j'ai pas cela sous la main
 
Bonjour,

En utilisant l'assistant hérité d'import de données texte (onglet 'Données' bouton 'Obtenir des données'-> 'Assistant hérités' avec l'enregistreur de macro j'ai obtenu ceci qui fonctionne et transforme les latitudes et longitudes en nombres décimaux.
VB:
Sub Import()
'
' Import Macro
'

'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;CheminVersLeFichier\st saulve1.csv", Destination:=Range("$A$1"))
        .CommandType = 0
        .Name = "st saulve1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
        .TextFileDecimalSeparator = "."
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

cordialement
 
@Deadpool_CC oui il ne reste plus que l'export des colonnes "B, G, H, E" dans cet ordre avec la remise à zéro des tableaux "ImportRange" et "ImportRange2"

@Hasco Je me doute qu'en passant par le Power Query cela doit être plus simple, mais je n'ai pas les connaissances pour pouvoir l'utiliser pour le moment, mais je vais m'y pencher dans un futur proche.
 
e me doute qu'en passant par le Power Query cela doit être plus simple, mais je n'ai pas les connaissances pour pouvoir l'utiliser pour le moment, mais je vais m'y pencher dans un futur proche.
Ma dernière proposition, n'a rien à voir avec Power query, mais avec les assistants d'importations tels qu'ils existaient dans les versions précédentes.

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
  • Question Question
2
Réponses
28
Affichages
1 K
Deleted member 441486
D
Réponses
3
Affichages
290
Retour