Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/11/2011, 12h22   #1
Membre régulier
 
Inscription : février 2009
Messages : 216
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 216
Points : 94
Points : 94
Par défaut Vba & orthographe

Bonjour à tous,

Question :
Peut-on par Vba remplacer les lettres Colonne ("B") comportant une accentuation (à,é,é,ç,î,ï,ê,ë etc.) par la même lettre sans accentuation, remplacer les " ' " par " _ " les traits d'union par un espace ?

Question inverse :
Peut-on également corriger l'orthographe des titres (tous dans la même colonne ("F") automatiquement sans intervention d'une boîte de dialogue ?

N'étant pas très doué en vba je vous remercie de vous pencher sur ma demande.
__________________
La lumière repousse les ténèbres et non les ténèbres la lumière.
vieuxmonsieur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 12h53   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour

Pour la première question

Une fonction
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function SansAccent(ByVal Chaine As String) As String
                            Dim Avec                    As Variant
                            Dim Sans                    As Variant
                            Dim CompA                   As Byte
                            Dim Pos                     As Long
    Application.Volatile
 
    Avec = "èéêëùúûòôÿàáâîïÈÉÊËÙÚÛÒÔŸÀÁÂÎÏ'-"
    Sans = "eeeeuuuooyaaaiiEEEEUUUOOYAAAII_ "
 
    For CompA = 1 To Len(Chaine)
        Pos = InStr(Avec, Mid(Chaine, CompA, 1))
        If Pos > 0 Then Mid(Chaine, CompA, 1) = Mid(Sans, Pos, 1)
    Next CompA
 
    SansAccent = Chaine
 
End Function
Pour la seconde
Citation:
Peut-on également corriger l'orthographe des titres

Aucune idée, si ce n'est > Option > Orthographe pour Excel 2003


Cordialement
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2011, 13h31   #3
Membre régulier
 
Inscription : février 2009
Messages : 216
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 216
Points : 94
Points : 94
Bonjour Jean Pierre et merci de me répondre aussi rapidement.
A défaut de pouvoir corriger automatiquement, peut-on obtenir l'inverse de ton code ?
__________________
La lumière repousse les ténèbres et non les ténèbres la lumière.
vieuxmonsieur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 13h37   #4
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Oui

en intervertissant
Code :
1
2
    Avec = "èéêëùúûòôÿàáâîïÈÉÊËÙÚÛÒÔŸÀÁÂÎÏ'-"
    Sans = "eeeeuuuooyaaaiiEEEEUUUOOYAAAII_ "
Donc
Code :
1
2
    Avec = "eeeeuuuooyaaaiiEEEEUUUOOYAAAII_ "
    Sans = "èéêëùúûòôÿàáâîïÈÉÊËÙÚÛÒÔŸÀÁÂÎÏ'-"
Cordialement

D'accord bbil

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function SansAccent(ByVal Chaine As String) As String
                            Dim Avec                    As Variant
                            Dim Sans                    As Variant
                            Dim CompA                   As Byte
                            Dim Pos                     As Long
    Application.Volatile
 
    Avec = "èéêëùúûòôÿàáâîïÈÉÊËÙÚÛÒÔŸÀÁÂÎÏ'-"
    Sans = "eeeeuuuooyaaaiiEEEEUUUOOYAAAII_ "
 
    For CompA = 1 To Len(Chaine)
        Pos = InStr(Sans, Mid(Chaine, CompA, 1))
        If Pos > 0 Then Mid(Chaine, CompA, 1) = Mid(avec, Pos, 1)
    Next CompA
 
    SansAccent = Chaine
 
End Function
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 13h42   #5
Membre régulier
 
Inscription : février 2009
Messages : 216
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 216
Points : 94
Points : 94
Je m'en doutais un peu, mais ne maitrisant pas vba la confirmation me rassure.
Je pense que ce code doit être placé dans un module.
Par contre, je ne "vois" pas comment il s'appliquera à une seule feuille du classeur (la feuille Titres) ni sur quelle colonne de la dite feuille le "B"
__________________
La lumière repousse les ténèbres et non les ténèbres la lumière.
vieuxmonsieur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 13h45   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par Jean-Pierre49 Voir le message
Oui

en intervertissant
Code :
1
2
    Avec = "èéêëùúûòôÿàáâîïÈÉÊËÙÚÛÒÔŸÀÁÂÎÏ'-"
    Sans = "eeeeuuuooyaaaiiEEEEUUUOOYAAAII_ "
Donc
Code :
1
2
    Avec = "eeeeuuuooyaaaiiEEEEUUUOOYAAAII_ "
    Sans = "èéêëùúûòôÿàáâîïÈÉÊËÙÚÛÒÔŸÀÁÂÎÏ'-"
Cordialement
la je crois que tu as répondu un peu vite ....
bbil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2011, 15h31   #7
Membre régulier
 
Inscription : février 2009
Messages : 216
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 216
Points : 94
Points : 94
Bonjour Jean Pierre, bbil,
Comment alors ?
__________________
La lumière repousse les ténèbres et non les ténèbres la lumière.
vieuxmonsieur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 15h37   #8
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par Jean-Pierre49 Voir le message
...

D'accord bbil
...
non tu n'as pas compris ... avec ton remplacement par quoi remplace tu par exemple le caractére : e èéêë ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 15h46   #9
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Exact bbil



Tout est à revoir
Sacrés accents..........

Cordialement

Citation:
Par contre, je ne "vois" pas comment il s'appliquera à une seule feuille du classeur (la feuille Titres) ni sur quelle colonne de la dite feuille le "B"
Faire Insertion > fonction > dans les personnalisées , tu cherche SansAccent

Et tu choisira ta cellule

Tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2011, 15h58   #10
Membre régulier
 
Inscription : février 2009
Messages : 216
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 216
Points : 94
Points : 94
Merci à vous deux pour avoir donné suite à ma demande et de vos explications.
Je vous souhaite un excellent week-end.
__________________
La lumière repousse les ténèbres et non les ténèbres la lumière.
vieuxmonsieur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h05.


 
 
 
 
Partenaires

Hébergement Web