Changer la valeur d'une Cellule Vide

Bonjour ,

Dans le cadre d'un projet je dois exporter un fichier excel en CSV pour pouvoir le rentrer dans une autre application.

Jusqu'ici tout fonctionne bien lais quelques chose de gène, en effet lors de la génération de mon fichier CSV quand un champs est vide sur le EXCEL cela les "," à la chaîne ce qui fait un rendu assez moche et peu professionnel.

Donc ce que je voudrais savoir c'est comment analyser les cellules de ma feuille puis remplacer la valeur de la cellule par un NULL par exemple histoire que quand le CSV soit générer j'obtienne un truc dans le genre :

AIR-WLC4402-25-K9,CENTRE HOSPITALIER D'AVIGNON,SWITCH,NULL,1111111111,FOC1356F03Z,CENTRE HOSPITALIER D'AVIGNON\Avignon,NULL,NULL,NULL,NULL,

bonjour,

Essayer ceci

Sub changer_cellules_vides()

   ActiveSheet.UsedRange.Cells.Replace what:="", Replacement:="null"

End Sub

Bonjour merci pour cette réponse rapide après intégration de votre solution dans mon code d'export j'obtiens toujours le même soucis dans le style :

AIR-WLC4402-25-K9,CENTRE HOSPITALIER D'AVIGNON,SWITCH,1111111111,FOC1356F03Z,CENTRE HOSPITALIER D'AVIGNON\Avignon,,,,,,,,,,,,,,,,,12354683

il semble que les cellules ne sont pas detectées

Si vous avez bien placé l'instruction de remplacement des cellules vides avant votre exportation, la seule explication est que vos cellules n'affichant rien contiennent en fait des formules. Est-ce le cas ?

[code]

Sub Export_CSV()

Dim Fe As Worksheet

Dim Plage As Range

Dim Cel As Range

Dim Tbl() As String

Dim Ligne As String

Dim Dossier As String

Dim Chemin As String

Dim Fichier As String

Dim I As Long

Dim J As Long

Dossier = "C:\Users\paul.fabre\OneDrive\INTERFACE\CSV\" '<--- chemin à adapter !

'nom du fichier avec la date du jour

Fichier = "UPISA" & " " & Format(Now, "dd-mm-yyyy") & ".csv"

'full path

Chemin = Dossier & Fichier

'si clic sur "Non", fin ddu programme

If MsgBox("Voulez-vous créer le fichier '" & Fichier & "' qui sera stocké dans le dossier '" & Dossier & "'?", vbQuestion + vbYesNo, "Fichier .CSV") = vbNo Then Exit Sub

'adapter le nom de la feuille à exporter

Set Fe = Worksheets("ELEMENTS")

'défini la plage sur toute la feuille à exporter

Set Plage = DefPlage(Fe, 1, 1)

' Met un NULL a la place d'un emplacement vide dans le CSV ( Esthetique)

' ActiveSheet.UsedRange.Cells.Replace what:="", Replacement:="null"

'crée les lignes pour les enregistrements tabulés avec comme séparateur la virgule

For I = 1 To Plage.Rows.Count

For J = 1 To Plage.Columns.Count: Ligne = Ligne & Plage(I, J).Value & ",": Next J

'supprime la , de fin

Ligne = Left(Ligne, Len(Ligne) - 1)

'stocke dans un tableau

ReDim Preserve Tbl(1 To I)

Tbl(I) = Ligne

'pour la suivante

Ligne = ""

Next I

'création du fichier .csv

Open Chemin For Output As #1

For I = 1 To UBound(Tbl): Print #1, Tbl(I): Next I

Close #1

'vérifie que le fichier est bien sur le disque sinon, message d'erreur

If Dir(Chemin) <> "" Then

'message de confirmation

MsgBox "Le fichier '" & Fichier & "' a bien été créé et enregistré dans le dossier '" & Dossier & "' !", vbInformation

Else

MsgBox "Une erreur c'est produite durant la création du fichier .csv !", vbExclamation

End If

End Sub

Function DefPlage(Fe As Worksheet, L As Long, C As Long) As Range

On Error GoTo fin

With Fe

Set DefPlage = .Range(.Cells(L, C), _

.Cells(.Cells.Find("*", .[A1], -4123, , _

1, 2).row, .Cells.Find("*", .[A1], -4123, , _

2, 2).Column))

End With

Exit Function

fin:

Set DefPlage = Nothing

End Function

[code]

Mon code ressemble a ça :) Non il n'y a aucune formule dans les cellules vides

Bonjour,

'stocke dans un tableau

ReDim Preserve Tbl(1 To I)

Tbl(I) = Ligne ---> Tbl(I) = Replace( Ligne , ",," , ",NULL,")

plusieurs remarques :

l'utilisation du mot "NULL" n'est pas formidable ...source de problème

le séparateur "," ou ";" j'ai abandonné j'utilise "|" que l' on rencontre beaucoup moins dans les textes

@+JP

Merci je vais essayer ca .

Le truc c'est que la virgule c'est la norme dans le CSV pour permettre de le ré-utiliser ensuite non ?

Merci ça fonctionne avec ta solution ! du coup j'ai un fichier CSV plutôt propre qui apparaît maintenant

Rechercher des sujets similaires à "changer valeur vide"