Macro indisponible
Bonjour,
Je n'arrive pas à faire fonctionner la macro suivante, impossible de l'éxecuter et je ne sais pas d'où vient le soucis : la feuille contenant la macro focntionne en elle-même mais dès que je l'intègre à un classeur la macro ne veux plus se lancer, le but étant d'exporter des données dans un fichier XLCSV.
Function GetSaveFilename() As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim varResult As Variant
Dim ActBook As Workbook
targetFileName = Application.ActiveWorkbook.Path & "\" & fso.GetBaseName(ActiveWorkbook.Name) & ".csv"
varResult = Application.GetSaveAsFilename(FileFilter:="CSV (*.csv), *.csv", Title:="Enregistrer sous", InitialFileName:=targetFileName)
If varResult <> False Then
GetSaveFilename = varResult
End If
End Function
Sub ExportCsv(paramTabExportNom, paramSeparateurChamp, paramSeparateurDecimal)
Dim tabExport As ListObject
Set tabExport = ActiveSheet.ListObjects(paramTabExportNom)
targetFolder = GetSaveFilename()
If targetFolder <> "" Then
Dim fileNo As Integer
fileNo = FreeFile
nbLigne = 0
On Error Resume Next
nbLigne = tabExport.DataBodyRange.Rows.Count + 1
On Error GoTo 0
If nbLigne > 0 Then
If Len(Dir(targetFolder)) > 0 Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile targetFolder
End If
Dim fsT As Object
Set fsT = CreateObject("ADODB.Stream")
fsT.Type = 2
fsT.Charset = "utf-8"
fsT.Open
For i = 1 To nbLigne
Ligne = ""
For j = 1 To tabExport.ListColumns.Count
Ligne = Ligne & tabExport.Range.Cells(i, j) & IIf(j = tabExport.ListColumns.Count, "", paramSeparateurChamp)
Next j
fsT.WriteText Ligne & vbCrLf
Next i
fsT.SaveToFile targetFolder, 2
AnswerYes = MsgBox("Le fichier a été exporté vers : " & vbCrLf & targetFolder & vbCrLf & vbCrLf & "Voulez-vous ouvrir l'emplacement ?", vbQuestion + vbYesNo, "Ouvrir l'emplacement")
If AnswerYes = vbYes Then
Shell Environ("WINDIR") & "\explorer.exe /select," & targetFolder, vbNormalFocus
End If
End If
End If
End SubMerci d'avance,
Cordialement,
Bonjour Gülsah et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment
- Pour plus de lisibilité, utilisez le bouton </> pour insérer vos codes VBA (et si possible aussi pour vos formules Excel).
Merci d'y faire attention la prochaine fois.
Vous pouvez également regarder les fonctionnalités du Forum
Merci de votre participation
Cordialement
Bonsoir,
je crois qu'une macro avec paramètre ne peut se lancer seule ! En effet quelles valeurs prennent les paramètres ?
Il vous faut créer une Sub qui appellera votre Sub ExportCsv, en indiquant les trois paramètres :
Sub Lancer()
Call ExportCsv V1 , V2, V3
End SubPar exemple où les trois variables V1 à V3 auront été définies.
@ bientôt
LouReeD