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 ???
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 ?
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
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.
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
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 !!!!
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.
Merci, cela fonctionne avec un export en *prn: il n'y a plus de double guillemets. Mais les caractères spéciaux (unicode) deviennent des ???
Est-ce que quelqu'un a trouvé une solution?
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éparateuroint-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.
@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