VBA : Chr(34) --> trop de guillemets

Paski

XLDnaute Nouveau
Bonjour à tous,

J'ai un problème que l'on pourrait qualifier de "problème à la *****", car il est difficilement "google-isable"...

Explication & code :

but du jeu : mettre les valeurs de la colonne 6 entre guillemets

Code:
Dim i As Long

For i = 1 To Range("F65536").End(xlUp).Row
     If Cells(i, 6) <> "?" Then
           Cells(i, 6).Value = Chr(34) & Cells(i, 6).Value & Chr(34)
     End If
 Next i

ce code fonctionne tout bien !

La cellule contenant TEXTE_AU_PIF devient bien "TEXTE_AU_PIF"

Note : l'exemple est avec des underscores, mais en "vrai", je peux avoir des espaces... je pense pas que cela change grand chose, mais je comprends tellement pas d'où peux venir mon problème....

Du moins, sous excel seulement... car ensuite je dois enregistrer en .txt (unicode, pas avec les tabulations)...

Et là c'est le drame, car si je regarde mon petit .txt avec Notepad, mon TEXTE_AU_PIF est en fait écris comme ceci
Code:
"""TEXTE_AU_PIF"""

Soit trois guillemets à la suite ! alors que moi j'aimerais en avoir que un seul, comme cela apparaît sous excel !

Question :

c'est mon code qui merdouille ou est-ce que c'est dû à l'enregistrement en .txt et d'une particularité que je ne connait pas ???


Merci d'avance à tous de votre aide !

Paski
 

mécano41

XLDnaute Accro
Re : VBA : Chr(34) --> trop de guillemets

Bonjour,

En utilisant ton code sur plusieurs mots ou phrases, le texte (correct) obtenu, copié dans le bloc-notes reste correct...aucune anomalie.

Truc bête (je l'ai fait par mégarde)... : tu n'aurais pas lancé deux fois ton code sur les mêmes cellules, sans avoir préalablement effacé les guillemets précédents et sans avoir vu ceux-ci avant copie dans le bloc-notes:D ?

PS : j'ai fait un copier-coller direct, sans passer par un fichier .Txt

[EDIT] effectivement, en enregistrant en .Txt, à l'ouverture dans bloc-notes, cela ne va plus...idem sous Word

Cordialement
 
Dernière édition:

Paski

XLDnaute Nouveau
Re : VBA : Chr(34) --> trop de guillemets

Merci beaucoup de vos réponses !

Aucun changement avec la syntaxe de CBernardT...

Je vous avoue que je suis perplexe devant mon soucis... en espérant qu'un expert du passage de ".xls à .txt" voit ce topic et vole à mon secours !

PS: je suis obligé de passer en .txt, l'application utilisée ensuite ne veux que ça (la coquine)
 

Fo_rum

XLDnaute Accro
Re : VBA : Chr(34) --> trop de guillemets

Salut

Un pis-aller

Code:
Sub gui()
Dim i As Long

For i = 1 To Range("F65536").End(xlUp).Row
     If Cells(i, 6) <> "?" Then
           Cells(i, 6).Value = Chr([B]147[/B]) & Cells(i, 6).Value & Chr([B]148[/B])
     End If
 Next i
End Sub
sachant que Chr(147) et Chr(148) correspondent aux guillemets anglais doubles.
Si ton application le permet, tu peux remplacer ces caractères par " dans le fichier sauvegardé en .txt.
 

tbft

XLDnaute Accro
Re : VBA : Chr(34) --> trop de guillemets

Bonjour tout le monde

j'ai un peu retoucher le code:

Code:
Private Sub test()
Dim i As Long

For i = 1 To Range("F65536").End(xlUp).Row
     If (Cells(i, 6) <> "?") And (Cells(i, 6) <> "") Then
        If (Left(Cells(i, 6), 1) <> Chr(34)) And (Right(Cells(i, 6), 1) <> Chr(34)) Then
           Cells(i, 6).Value = Chr(34) & Cells(i, 6).Value & Chr(34)
        End If
     End If
 Next i
End Sub

En espérant que ...
 

Paski

XLDnaute Nouveau
Re : VBA : Chr(34) --> trop de guillemets

Bonjour,

@ Fo_rum :

L'idée était bonne, voilà ce que ça donne chez moi :

Excel ne me rajoute pas les guillemets superflus, j'ai bien juste les guillemets anglais (un peu penchés, so british)

Bon par contre l'application qui récupère le fichier n'aime pas trop trop... mais bon, un petit "Remplacer" dans notepad ++ et ça roule...

C'est juste que après je refile ce genre de fichiers à des utilisateurs plutôt néophytes, avoir des retraitements à faire avec d'autre applis... ça sera le bazar... saleté de guillemets !!!!

@ tbft : je teste de suite
 

Paski

XLDnaute Nouveau
Re : VBA : Chr(34) --> trop de guillemets

Après test de la solution de tbft, même résultat...

Je pense tout de même que le problème vient d'un traitement bizarre d'excel lorsqu'il convertit en fichiers autres que .xls

Par exemple, si j'enregistre en .csv --> même problème

Si j'enregistre en .htm --> aucun problème

Si j'enregsitre en .xml --> il n'y a bien qu'une "paire de quotes"


Bref, je comprends plus grand chose, et je pense bien que c'est excel qui joue un vilain tour quand on enregistre dans des formats pas courants...

:'(
 

CharlesCK

XLDnaute Nouveau
Re : VBA : Chr(34) --> trop de guillemets

Je sais que ce post est vieux, mais ça peut toujours servir. Je viens juste de trouver une réponse à ton problème.
En essayant de sauvegarder au format texte, j'ai bien des doubles voire des triples guillemets qui apparait. Par contre, la sauvegarde au format "Formatted Text (Space delimited) (*.prn), les guillemets en trop disparaissent.

Fichier = "....\monfichier.txt"
ActiveWorkbook.SaveAs Filename:=Fichier, FileFormat:=xlTextPrinter, CreateBackup:=False


En espérant que ça aide...
@+
 

Mexav

XLDnaute Nouveau
Bonsoir,
Les deux codes fonctionnent correctement, sauf que le premier ajoutera des guillemets autant de fois que l'on lance la macro, même dans une cellule vide.
Le deuxième code n’attribue qu'une seule fois les guillemets, ne s'applique pas aux cellules vides.
Sauver le fichier avec le :type CSV (séparateur:point-virgule) (*.csv) comme Ajouter guillemets à une cellule.csv.
Ensuite il suffit de faire un copier coller dans le bloc note ou utiliser le fichier Excel sauvé en extension CSV.
Si cela peut être utile.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@Mexav
C'est bien connu qu'un message posté un samedi d'avril 2018 en guise de réponse à une question postée initialement en août 2010
(certes le même jour du mois: le 20) est forcément utile...;)

NB:Evidemment il faut oublier ces deux petits détails
Paski a été vu(e) dernièrement : 17 Novembre 2010
Evelyne a été vu(e) dernièrement : 8 Juillet 2016
 

Discussions similaires

Réponses
12
Affichages
247
Réponses
7
Affichages
348

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma