Je suis totalement novice en macros mais j'utilise au travail depuis longtemps un code qui me permet d'importer un CSV et de le mettre en forme selon plusieurs critères accompagné de plusieurs routines.
Depuis ce mois, une différence est apparue et certaines lignes du tableau disparaissent. Je n'ai pas d'explication mais j'ai isolé une solution.
Sans utiliser mon programme, je reproduis systématiquement le problème en important mon CSV dans CALC sauf en précisant dans les conditions d'import de texte avec un séparateur de texte laissé à blanc au lieu de " ou '
la ligne de code qui permet de définir les critères est celle-ci :
Code : Tout sélectionner
Sub ImportCSV
'macro destinée à l'import du fichier .CSV BRUT
'Definition des variables
Dim adrDocCSV,optFiltre as string
Dim macellule, maZone as object
Dim Lerep As Object
Dim lesFichiers() As String
Dim oDialog1, oFenetre as Object
Dim tblo
'on nettoie les données existantes
RAZ
'affichage d'un message d'attente pendant le retraitement et on bloque toutes les actions
On Error goto Erreur
DialogLibraries.LoadLibrary("Standard") 'Charge la bibliothèque
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
oDialog1.Enable = False ' Empêche l'utilisateur de fermer le dialogue
oDialog1.SetVisible(True) ' Affiche oDialog1 sans interrompre la macro
oFenetre = ThisComponent.CurrentController.Frame.ContainerWindow
oFenetre.Enable = False ' bloque toutes les actions de l'utilisateur impatient
' et accélère un peu le traitemment
'choix du fichier CSV à importer
Lerep = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
Lerep.DisplayDirectory = ConvertToURL("C:\Users\Public\Desktop\")
Lerep.appendFilter("CSV", "*.csv")
Lerep.Title = "Choisissez le fichier à traiter"
if Lerep.execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK then
lesFichiers() = Lerep.Files
adrDocCSV = lesFichiers(0)
Else
' exit sub 'si aucun choix, on sort de la macro
Goto erreur
End if
'on affiche le message d'attente
oDialog1.SetVisible(True) ' Affiche oDialog1 sans interrompre la macro
'definition du filtre CSV (9 pour sauter le champs, 1=Monétaire, 5=Date format US, 2=Texte)
'décomposée avec l'aide de l'onglet caché "ImportCSV" comme suit colonne N° 1 puis / puis sa valeur puis colonne N°2 puis / puis sa valeur etc...
optFiltre= "9/59/MRG,34/39,ANSI,1,1/9/2/1/3/2/4/2/5/2/6/2/7/2/8/2/9/9/10/2/11/5/12/1/13/9/14/9/15/9/16/2/17/2/18/9/19/5/20/5/21/9/22/9/23/9/24/9/25/9/26/1/27/1/28/1/29/1/30/9/31/9/32/9/33/9"
Fimport.link(adrDocCSV, "", "Text - txt - csv (StarCalc)", optFiltre, com.sun.star.sheet.SheetLinkMode.VALUE)
' Rupture du lien
Fimport.setLinkMode(com.sun.star.sheet.SheetLinkMode.NONE)
titreFeuille = LesFeuilles.getByName("titreDonnées")
Je suppose que ce critère doit être saisi ici
Code : Tout sélectionner
optFiltre= "9/59/MRG,34/39,ANSI,1,1/9/2/1/3/2/4/2/5/2/6/2/7/2/8/2/9/9/10/2/11/5/12/1/13/9/14/9/15/9/16/2/17/2/18/9/19/5/20/5/21/9/22/9/23/9/24/9/25/9/26/1/27/1/28/1/29/1/30/9/31/9/32/9/33/9"
'ci-dessus les paramètres sont très certainement défini ici optFiltre= "9/59/MRG,34/39,ANSI,1,....
Merci de votre aide