[VBA] Banaliser les guillemets dans un script
Résolu/Fermé
lml-mike
Messages postés
455
Date d'inscription
vendredi 16 février 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
-
31 mars 2008 à 11:25
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 2 avril 2008 à 12:23
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 2 avril 2008 à 12:23
A voir également:
- [VBA] Banaliser les guillemets dans un script
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Guillemets français clavier - Forum Windows
- Excel compter cellule couleur sans vba - Guide
- Guillemets anglais - Guide
7 réponses
lml-mike
Messages postés
455
Date d'inscription
vendredi 16 février 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
121
31 mars 2008 à 11:54
31 mars 2008 à 11:54
Ok, j'ai trouvé comment banaliser les guillemets, mais pas comment inclure cela dans le script...
en fait c'est très simple il suffit de les dédoubler. Si par exemple dans
Chr(13) & Chr(10) & " & Chr(34) & texte & Chr(34) & " _"
Je rencontre :
Il faudrait que cela soit :
Ce qui donne en alogrithme :
Lire fichier
Pour chaque ligne de fichier
Si ligne contient "
alors
remplacer " par ""
fin si
fin pour
Quelqu'un sait retranscrire cela en VBA ?
en fait c'est très simple il suffit de les dédoubler. Si par exemple dans
Chr(13) & Chr(10) & " & Chr(34) & texte & Chr(34) & " _"
Je rencontre :
Chr(13) & Chr(10) & "chat-script ORANGE "" "ATT*64***4#" TIMEOUT 10 "CONNECT"" _
Il faudrait que cela soit :
Chr(13) & Chr(10) & "chat-script ORANGE """" ""ATT*64***4#"" TIMEOUT 10 ""CONNECT"" " _
Ce qui donne en alogrithme :
Lire fichier
Pour chaque ligne de fichier
Si ligne contient "
alors
remplacer " par ""
fin si
fin pour
Quelqu'un sait retranscrire cela en VBA ?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
31 mars 2008 à 13:31
31 mars 2008 à 13:31
Salut,
tu ne manges jamais toi ???
essaies la fonction replace() : monTexte = Replace(ligne,""","""") ... je garantie rien, j'ai pas testé ...
;o)
polux
tu ne manges jamais toi ???
essaies la fonction replace() : monTexte = Replace(ligne,""","""") ... je garantie rien, j'ai pas testé ...
;o)
polux
lml-mike
Messages postés
455
Date d'inscription
vendredi 16 février 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
121
31 mars 2008 à 15:35
31 mars 2008 à 15:35
Excuse-moi, je mange très vite et ne fais pas très attention à l'heure ^^
Après quelques petits essais, j'essaye :
et ça marche :P
Puis-je en profiter pour poser encore une question bête, sur ces petites variables
numéro = 251
nom = de-la-villa
y a t il une fonction pour extraire le 1 de 251, et le villa de de-la-villa ?
Je sais, c'est honteux de ne pas savoir ça ...
Après quelques petits essais, j'essaye :
texte = Replace(texte, """", """""")
et ça marche :P
Puis-je en profiter pour poser encore une question bête, sur ces petites variables
numéro = 251
nom = de-la-villa
y a t il une fonction pour extraire le 1 de 251, et le villa de de-la-villa ?
Je sais, c'est honteux de ne pas savoir ça ...
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
31 mars 2008 à 17:51
31 mars 2008 à 17:51
re,
Content que tu ais trouvé ...
Pour l'autre question, oui il existe plusieurs fonctions qui permettent d'extraire une partie d'une chaîne de caractères.
Pour le numéro, si c'est d'un type entier, long ou double (décimal), il faut d'abord le convertir en chaîne de caractères.
Ici la fonction Right retourne le dernier caractère de la chaîne monNum. CStr est la fonction qui transforme une variable de type entier, long ou double en chaîne de caractère.
Pour le deuxième, c'est un peu plus compliqué, même si le principe est pratiquement le même. Comment savoir quels caractères extraire ? Y-a-t'il toujours un "-" ? si oui, il faut faire une boucle :
Toujours aucune garantie que ça marche ... je ne peux pas tester ... mais ça doit pas être loin ...
Bon courage
;o)
Polux
Content que tu ais trouvé ...
Pour l'autre question, oui il existe plusieurs fonctions qui permettent d'extraire une partie d'une chaîne de caractères.
Pour le numéro, si c'est d'un type entier, long ou double (décimal), il faut d'abord le convertir en chaîne de caractères.
num = Right(CStr(monNum),1)
Ici la fonction Right retourne le dernier caractère de la chaîne monNum. CStr est la fonction qui transforme une variable de type entier, long ou double en chaîne de caractère.
Pour le deuxième, c'est un peu plus compliqué, même si le principe est pratiquement le même. Comment savoir quels caractères extraire ? Y-a-t'il toujours un "-" ? si oui, il faut faire une boucle :
Public Function SearchNom (ByVal nom As String) As String Dim i As Integer Dim c As String For i = Len(nom) to 1 'pour i allant de la longueur de la chaîne à 1. Ici nom = 11 caractères If Chr$(nom, Len(nom), i) <> "-" Then SearchNom = c Exit Function Else c = Chr$(nom, Len(nom), i) & c End If Nexi i End Function
Toujours aucune garantie que ça marche ... je ne peux pas tester ... mais ça doit pas être loin ...
Bon courage
;o)
Polux
lml-mike
Messages postés
455
Date d'inscription
vendredi 16 février 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
121
1 avril 2008 à 11:45
1 avril 2008 à 11:45
Merci pour le coup de main !!!
Je ne pourrai tester ta fonction que cette après midi, mais a ce que j'en ai compris :
(je me lis en essayant de comprendre en même temps :P)
T'es sûr que c'est pas plutot l'inverse ??? " si extraire(nom, long(nom), i) = "-" alors"
Mais sinon j'ai compris et c'est une super idée...parce que j'ai oublié de le préciser, mais oui, il y a toujours un séparateur "-" et je veux toujours le dernier mot :)
Je ne pourrai tester ta fonction que cette après midi, mais a ce que j'en ai compris :
Pour i de long(nom) à 1 'par ordre décroissant si extraire(nom, long(nom), i) <> "-" alors mot = c fin sinon c = chaine(nom, long(nom), i) & c fin si fin pour
(je me lis en essayant de comprendre en même temps :P)
T'es sûr que c'est pas plutot l'inverse ??? " si extraire(nom, long(nom), i) = "-" alors"
Mais sinon j'ai compris et c'est une super idée...parce que j'ai oublié de le préciser, mais oui, il y a toujours un séparateur "-" et je veux toujours le dernier mot :)
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
1 avril 2008 à 12:01
1 avril 2008 à 12:01
salut,
Oui tu as raison ... c'est : "si extraire(nom, long(nom), i) = "-" alors" ... voilà ce que c'est de ne pas faire de test ... je pense que tu as pigé le principe ... à toi de jouer maintenant
N'oublie pas de mettre résolu ...
bon courage
;o)
Polux
Oui tu as raison ... c'est : "si extraire(nom, long(nom), i) = "-" alors" ... voilà ce que c'est de ne pas faire de test ... je pense que tu as pigé le principe ... à toi de jouer maintenant
N'oublie pas de mettre résolu ...
bon courage
;o)
Polux
lml-mike
Messages postés
455
Date d'inscription
vendredi 16 février 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
121
2 avril 2008 à 10:14
2 avril 2008 à 10:14
Je l'aurais mis avec plaisir, malheureusement ce n'est pas le cas...
Lorsque j'ai applique ta fonction à mon projet, j'ai un message d'erreur pour Chr$ me disant :
Quelqu'un sait d'où ce problème peut venir ?
Sachant que j'ai viré le début et la fin de la fonction publique, qui elle aussi me posait problème :
Lorsque j'ai applique ta fonction à mon projet, j'ai un message d'erreur pour Chr$ me disant :
Erreur de compilation : Nombre d'arguments incorrect où affectation de propriété incorrecte
Quelqu'un sait d'où ce problème peut venir ?
Sachant que j'ai viré le début et la fin de la fonction publique, qui elle aussi me posait problème :
For i = Len(DNS) To 1 If Chr$(DNS, Len(DNS), i) <> "-" Then lieu = c Exit Function Else c = Chr$(DNS, Len(DNS), i) & c End If Nexi i
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
2 avril 2008 à 10:49
2 avril 2008 à 10:49
Bonjour,
Pfffff je dois avoir besoin de repos moi .. remplace Chr$ (qui n'a rien avoir là dedans) et met Mid(DNS, Len(DNS), i) = "-" Then ....
;o)
polux
Pfffff je dois avoir besoin de repos moi .. remplace Chr$ (qui n'a rien avoir là dedans) et met Mid(DNS, Len(DNS), i) = "-" Then ....
;o)
polux
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
2 avril 2008 à 11:01
2 avril 2008 à 11:01
annule et remplace le pécédent ... vivement les vacances ^^
Testé et approuvé ...
;o)
polux
For i = Len(DNS) To 1 Step -1 If Mid(DNS, i, 1) = "-" Then lieu = c Exit Function Else c = Mid(DNS, i, 1) & c End If Next i
Testé et approuvé ...
;o)
polux
lml-mike
Messages postés
455
Date d'inscription
vendredi 16 février 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
121
2 avril 2008 à 11:10
2 avril 2008 à 11:10
Tout fonctionne absolument à merveille :)
Merci pour tout tes conseils, problème résolu ;-)
P.S.: j'ai remplacé le exit function par exit for, le fait d'avoir mis une fonction dans mon sub m'a crée plein de merdes (remplacement du end sub par end function, ajout d'un exit function a l'avant derniere ligne) bref...c'est reglé, et c'est le principal !
Merci pour tout tes conseils, problème résolu ;-)
P.S.: j'ai remplacé le exit function par exit for, le fait d'avoir mis une fonction dans mon sub m'a crée plein de merdes (remplacement du end sub par end function, ajout d'un exit function a l'avant derniere ligne) bref...c'est reglé, et c'est le principal !
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
2 avril 2008 à 12:23
2 avril 2008 à 12:23
Content pour toi et désolé pour les bourdes que j'ai commises ... (c'est quand les vacances ??? ... par encore ? .. bon ok, je sors ...)
;o)
polux
;o)
polux
31 mars 2008 à 13:23