Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Remplacer les apostrophes dans des libellés par des doubles quote

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sissou71

XLDnaute Occasionnel
Bonjour,

J'ai un fichier Excel qui permet de mettre en place un sondage et crée la requête SQL dans une ligne. Je voudrais que dans les champs remplis par le créateur du sondage, les apostrophes soient remplacées par des double quote de manière à ce que la requête SQL fonctionne.

Cf fichier joint, les données remplies par le créateur du sondage sont les colonnes A à D et la requête SQL s'écrit en colonne F

Merci pour votre aide
 

Pièces jointes

Re : Remplacer les apostrophes dans des libellés par des doubles quote

En fait ce sont les apostrophes que le créateur du sondage mettra dans lezs colonnes A à D que je souhaiterai modifier par macro car je ne sait pas ou elles seront placées. Mais si je comprends bien votre réponse dans l'insert into vous doublez les quotes de manière à ce qu'il prenne les cellules comme du texte ? Je vais essayer, merci/
 
Re : Remplacer les apostrophes dans des libellés par des doubles quote

En relisant la formule, ca ne correspond pas à ce que je recherche car il me faut des quotes autour des valeurs dans la requête SQL, et donc dès qu'il rencontre une apostrophe, il la prend comme une quote.
 
Re : Remplacer les apostrophes dans des libellés par des doubles quote

Bonjour,

Peux-tu écrire cette ligne comme le résultat que tu désires ?

INSERT INTO questions (id, title, text, section ) VALUES ('1', 'Utilisation', 'Envisagez-vous d’utiliser un autre Navigateur ?', 'Informatique');


G
 
Re : Remplacer les apostrophes dans des libellés par des doubles quote

Le résultat que je désire est le suivant : INSERT INTO questions (id, title, text, section ) VALUES ('1', 'Utilisation', 'Envisagez-vous d’'utiliser un autre Navigateur ?', 'Informatique');
Remplacer le d apostrophe de "Envisagez-vous d'utiliser..." par une double quote ""Envisagez-vous d''utiliser..."
 
Re : Remplacer les apostrophes dans des libellés par des doubles quote

Bonjour,

Examine ce fichier. Dès que on change de cellule la macro se réexécute.

Je dois quitter pour une heure si quelque chose ne convient pas.


G
 
Re : Remplacer les apostrophes dans des libellés par des doubles quote

Merci,

En fait je ne souhaite pas toucher à la colonne F qui correspond à la requête dans la section VALUE je dois avoir des quote (') autour des valeurs contenues dans les cellules A2, B2, C2 et D2 comme ceci : VALUES ('1', 'Utilisation', 'Envisagez-vous d’'utiliser un autre Navigateur ?', 'Informatique');

Quand dans une des cellules A à D, le texte contient une apostrophe, celle-ci doit être remplacer par une double quote ('') mais pas un guillemet

Je souhaite juste trouver une macro qui traite les apostrophes dans les colonnes A à D.

Ce fichier à pour but de générer des sondages régulièrement et la requête SQL assocviée pour affichage du sondage dans un navigateur internet. Les contenues des cellules A à D peuvent changer. J'ai mis un exmple avec 5 lignes mais le fichier réel en contient 100.

Ce qui m'intéresse c'est traiter les apostrophes dans les colonnes A à D, sans toucher à la colonne F vu que la requête est correcte.
 
Re : Remplacer les apostrophes dans des libellés par des doubles quote

Bonjour,

Examine ce fichier s'il peut convenir.

Il prend en charge un nombre de lignes dynamique vérifié sur la colonne A.

Il gère les ' et les ’ car sur ma machine l'apostrophe est ' et non ’

Il remplace ' et ’ à par '' si j'ai bien compris.

La macro s'exécute si on change de cellule dans les colonnes B, C et D seulement.


G
 

Pièces jointes

Re : Remplacer les apostrophes dans des libellés par des doubles quote

C'est exactement ce que je recherche ! Merci beaucoup !

Par contre je comprends en partie la macro mais je ne comprends pas tout. Serait-il possible quand vous aurez un peu de temps de m'expliquer les différentes étapes de la macro ?
 
Re : Remplacer les apostrophes dans des libellés par des doubles quote

Allô Sissou71!

Voici deux versions corrigées suite à ton message privé.

Ai-je bien compris que tu préférerais que la macro ne s'exécute pas automatiquement, mais à partir d'un bouton ??


DoubleQuote(4) > La macro s'exécute automatiquement si le curseur est dans les colonnes B, C ou D.

DoubleQuote(5 avec bouton) > La macro ne d'exécute que si on clique sur le bouton que j'ai ajouté.

Désolé pour les p'tits bugs de l'autre jour. 😱 🙄


G
 

Pièces jointes

Re : Remplacer les apostrophes dans des libellés par des doubles quote

Bonjour,

Merci pour ces 2 versions. Ce qui me perturbe dans le code proposé c'est qu'on répète les actions pour chaque colonne, j'ai essayé de faire une sélection pour toutes les colonnes dont j'ai besoin mais forcément la macro n'est pas correcte et du coup je me retrouve avec au moins 4 '''' a chaque fois qu'il en trouve une. Quelqu'un saurait comment faire en sorte que quand il a changé une fois il ne revienne pas dessus ?

Voici mon code :

Sub DoubleQuote()
'
' DoubleQuote Macro
' Remplace les apostrophes par des doubles quotes
'
Dim Cell As Variant
'
Range("B3:H200").Select

For Each Cell In Selection
Cell.Value = Replace(Cell.Value, "’", "''")
Next Cell

For Each Cell In Selection
Cell.Value = Replace(Cell.Value, "'", "''")
Next Cell

End Sub
 
Re : Remplacer les apostrophes dans des libellés par des doubles quote

Bonjour,

Il y a presque autant de façon d'écrire du code que de codeux.

Il est bien vrai que la façon que tu désires est plus parcimonieuse en ligne de code et tout aussi efficace malgré un cadre plus strict sur la plage traitée.

Testé ...

Code:
Private Sub CommandButton1_Click()
Dim U As Byte
Dim Cel As Variant
Application.ScreenUpdating = False
With Sheets("Données")
   Range("B3:H200").Select
   For Each Cel In Selection
      U = InStr(Cel, "''")
      If U = 0 Then Cel.Value = Replace(Cel, "'", "''")
      If U = 0 Then Cel.Value = Replace(Cel, "’", "''")
   Next Cel
End With
Range("B3").Select
End Sub

Edit : J'ai enlevé : Dim X as Integer ... car ce n'était plus pertinent.


G
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…