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

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

  • DoubleQuote.xlsx
    10.1 KB · Affichages: 64

Sissou71

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

Encore une question... le bouton convient parfaitement à l'utilisation que mes utilisateurs par contre il reste un cas ou le bouton ne fonctionne pas et là je n'arrive pas à trouver de solutions... je tente une explication :

Dans la cellule B3, l'utilisateur entre le texte "Envisagez-vous d'utiliser un appareil ?"
Il clique sur le bouton "modifier apostrophe" et le texte devient "Envisagez-vous d''utiliser un appareil ?"
Ca fonctionne
Par contre l'utilisateur modifie la cellule B3 par le texte "Envisagez-vous d'utiliser un appareil d'audition?"
une nouvelle apostrophe est apparue mais s'il clique de nouveau sur le bouton "modifier apostrophe" la nouvelle apostrophe n'est pas modifiée.

Comment faire pour que la macro repasse sur les cellules qu'elle a déjà modifiées ?
Merci encore
Cécile
 

Gelinotte

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

Bonjour,

En me droguant au café, j'ai jeté un coup d'oeil et pensé à une correction qui semble bien fonctionnner.

En fait cela consiste à vérifier une première fois s'il y a double ', à les enlever pour ensuite les remettre.

À tester :

Code:
Private Sub CommandButton1_Click()
Dim U As Byte
Dim X As Integer
Dim Cel As Variant
Application.ScreenUpdating = False
With Sheets("Données")
   Range("B2:H200").Select
   For Each Cel In Selection
      U = InStr(Cel, "''")
      If U > 0 Then Cel.Value = Replace(Cel, "''", "'")
      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


G
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 017
dernier inscrit
annboi19