transformer nom majuscules, noms propres, ou l'inverse ?
5 réponses
jipeache
bonjour,
Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe
les noms d'auteur(s) d'ouvrages.
La saisie s'est faite sous 2 formes, par exemple :
Blondel-Loisel, Annie \ Litalien, Raymonde \ Canada. Ambassade
(France). Services culturels \ Centre havrais de recherche historique
- Les amis du vieux Havre
ou :
DELISLE, L=E9opold \ PASSY, Louis \ LE PREVOST, Auguste \ BORDEAUX,
Raymond \ CHASSANT, Alfred
par exemple.
Comment harmoniser de fa=E7on automatique : transformer soit tous les
noms en majuscule en nom propre, soit l'inverse ?
Sachant que le " \ " est un s=E9parateur de nom d'auteur, qu'il peut y
avoir (ex 1) des noms d'organismes =E9crits sous forme classique donc =E0
ne pas modifier, que le nom et le pr=E9nom (parfois une initiale et un
point seulement) sont toujours s=E9par=E9s par une virgule, qu'il n'y a
parfois qu'un nom d'auteur (mais la majorit=E9 d'ouvrages collectifs).
Merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Brunos
Bonjour jipeache Je te propose une fonction personnalisée qui te renvoie le texte avec les noms de famille d'auteurs mis en majuscule. J'ai considéré que le nom de famille de l'auteur est toujours suivi d'une virgule, les noms d'organismes n'ayant jamais de virgule.
Function NomAuteurEnMaj(Texte) 'max 50 auteurs par texte 'séparateur auteur = "" 'nom famille auteur suivi de "," Dim Position, n, Auteur(50) Position = InStr(1, Texte, "", vbTextCompare) n = 1 ' découpe par auteur Do While Position > 0 Auteur(n) = Left(Texte, Position - 1) Texte = Right(Texte, Len(Texte) - Position) Position = InStr(1, Texte, "", vbTextCompare) n = n + 1 Loop Auteur(n) = Texte ' met le nom de famille en majuscule For i = 1 To n Position = InStr(1, Auteur(i), ",", vbTextCompare) If Position > 0 Then 's'il y a une virgule Auteur(i) = UCase(Left(Auteur(i), Position - 1)) _ & Right(Auteur(i), Len(Auteur(i)) - Position + 1) End If Next ' recompose le texte For i = 1 To n NomAuteurEnMaj = NomAuteurEnMaj & Auteur(i) If i < n Then NomAuteurEnMaj = NomAuteurEnMaj & "" Next End Function
http://cjoint.com/?bvltq4VSCV
Brunos
"jipeache" a écrit dans le message de news:
Comment harmoniser de façon automatique : transformer soit tous les noms en majuscule en nom propre, soit l'inverse ? Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y avoir (ex 1) des noms d'organismes écrits sous forme classique donc à ne pas modifier, que le nom et le prénom (parfois une initiale et un point seulement) sont toujours séparés par une virgule, qu'il n'y a parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs). Merci
Bonjour jipeache
Je te propose une fonction personnalisée qui te renvoie le texte avec
les noms de famille d'auteurs mis en majuscule.
J'ai considéré que le nom de famille de l'auteur est toujours suivi
d'une virgule,
les noms d'organismes n'ayant jamais de virgule.
Function NomAuteurEnMaj(Texte)
'max 50 auteurs par texte
'séparateur auteur = ""
'nom famille auteur suivi de ","
Dim Position, n, Auteur(50)
Position = InStr(1, Texte, "", vbTextCompare)
n = 1
' découpe par auteur
Do While Position > 0
Auteur(n) = Left(Texte, Position - 1)
Texte = Right(Texte, Len(Texte) - Position)
Position = InStr(1, Texte, "", vbTextCompare)
n = n + 1
Loop
Auteur(n) = Texte
' met le nom de famille en majuscule
For i = 1 To n
Position = InStr(1, Auteur(i), ",", vbTextCompare)
If Position > 0 Then 's'il y a une virgule
Auteur(i) = UCase(Left(Auteur(i), Position - 1)) _
& Right(Auteur(i), Len(Auteur(i)) - Position + 1)
End If
Next
' recompose le texte
For i = 1 To n
NomAuteurEnMaj = NomAuteurEnMaj & Auteur(i)
If i < n Then NomAuteurEnMaj = NomAuteurEnMaj & ""
Next
End Function
http://cjoint.com/?bvltq4VSCV
Brunos
"jipeache" a écrit dans le message de news:
Comment harmoniser de façon automatique : transformer soit tous les
noms en majuscule en nom propre, soit l'inverse ?
Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y
avoir (ex 1) des noms d'organismes écrits sous forme classique donc à
ne pas modifier, que le nom et le prénom (parfois une initiale et un
point seulement) sont toujours séparés par une virgule, qu'il n'y a
parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs).
Merci
Bonjour jipeache Je te propose une fonction personnalisée qui te renvoie le texte avec les noms de famille d'auteurs mis en majuscule. J'ai considéré que le nom de famille de l'auteur est toujours suivi d'une virgule, les noms d'organismes n'ayant jamais de virgule.
Function NomAuteurEnMaj(Texte) 'max 50 auteurs par texte 'séparateur auteur = "" 'nom famille auteur suivi de "," Dim Position, n, Auteur(50) Position = InStr(1, Texte, "", vbTextCompare) n = 1 ' découpe par auteur Do While Position > 0 Auteur(n) = Left(Texte, Position - 1) Texte = Right(Texte, Len(Texte) - Position) Position = InStr(1, Texte, "", vbTextCompare) n = n + 1 Loop Auteur(n) = Texte ' met le nom de famille en majuscule For i = 1 To n Position = InStr(1, Auteur(i), ",", vbTextCompare) If Position > 0 Then 's'il y a une virgule Auteur(i) = UCase(Left(Auteur(i), Position - 1)) _ & Right(Auteur(i), Len(Auteur(i)) - Position + 1) End If Next ' recompose le texte For i = 1 To n NomAuteurEnMaj = NomAuteurEnMaj & Auteur(i) If i < n Then NomAuteurEnMaj = NomAuteurEnMaj & "" Next End Function
http://cjoint.com/?bvltq4VSCV
Brunos
"jipeache" a écrit dans le message de news:
Comment harmoniser de façon automatique : transformer soit tous les noms en majuscule en nom propre, soit l'inverse ? Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y avoir (ex 1) des noms d'organismes écrits sous forme classique donc à ne pas modifier, que le nom et le prénom (parfois une initiale et un point seulement) sont toujours séparés par une virgule, qu'il n'y a parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs). Merci
francois.forcet
On 21 jan, 09:14, jipeache wrote:
bonjour, Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe les noms d'auteur(s) d'ouvrages. La saisie s'est faite sous 2 formes, par exemple : Blondel-Loisel, Annie Litalien, Raymonde Canada. Ambassade (France). Services culturels Centre havrais de recherche historique - Les amis du vieux Havre ou : DELISLE, Léopold PASSY, Louis LE PREVOST, Auguste BORDEAUX, Raymond CHASSANT, Alfred par exemple. Comment harmoniser de façon automatique : transformer soit tous les noms en majuscule en nom propre, soit l'inverse ? Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y avoir (ex 1) des noms d'organismes écrits sous forme classique donc à ne pas modifier, que le nom et le prénom (parfois une initiale et un point seulement) sont toujours séparés par une virgule, qu'il n'y a parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs). Merci
Salut à toi
Onglet Feuil1 colonne A à traiter
Ce code :
Sheets("Feuil1").Activate For Each c In Worksheets("Feuil1").Range("A1", [A65535].End(xlUp)) Départ = 1 Nom = "" For i = 1 To Len(c) Car = Mid(c, i, 1) If Car <> "," Then Nom = Nom & Car Else If Départ = 1 Then c.Value = UCase(Nom) & Mid(c, i) Else c.Value = Left(c, Départ) & UCase(Nom) & Mid(c, i) End If Nom = "" Départ = i End If If Car = "" Then Nom = "" Départ = i End If Next Next
Tous les noms se terminant par une virgule sont traités
On 21 jan, 09:14, jipeache <jipea...@gmail.com> wrote:
bonjour,
Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe
les noms d'auteur(s) d'ouvrages.
La saisie s'est faite sous 2 formes, par exemple :
Blondel-Loisel, Annie Litalien, Raymonde Canada. Ambassade
(France). Services culturels Centre havrais de recherche historique
- Les amis du vieux Havre
ou :
DELISLE, Léopold PASSY, Louis LE PREVOST, Auguste BORDEAUX,
Raymond CHASSANT, Alfred
par exemple.
Comment harmoniser de façon automatique : transformer soit tous les
noms en majuscule en nom propre, soit l'inverse ?
Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y
avoir (ex 1) des noms d'organismes écrits sous forme classique donc à
ne pas modifier, que le nom et le prénom (parfois une initiale et un
point seulement) sont toujours séparés par une virgule, qu'il n'y a
parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs).
Merci
Salut à toi
Onglet Feuil1 colonne A à traiter
Ce code :
Sheets("Feuil1").Activate
For Each c In Worksheets("Feuil1").Range("A1", [A65535].End(xlUp))
Départ = 1
Nom = ""
For i = 1 To Len(c)
Car = Mid(c, i, 1)
If Car <> "," Then
Nom = Nom & Car
Else
If Départ = 1 Then
c.Value = UCase(Nom) & Mid(c, i)
Else
c.Value = Left(c, Départ) & UCase(Nom) & Mid(c, i)
End If
Nom = ""
Départ = i
End If
If Car = "" Then
Nom = ""
Départ = i
End If
Next
Next
Tous les noms se terminant par une virgule sont traités
bonjour, Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe les noms d'auteur(s) d'ouvrages. La saisie s'est faite sous 2 formes, par exemple : Blondel-Loisel, Annie Litalien, Raymonde Canada. Ambassade (France). Services culturels Centre havrais de recherche historique - Les amis du vieux Havre ou : DELISLE, Léopold PASSY, Louis LE PREVOST, Auguste BORDEAUX, Raymond CHASSANT, Alfred par exemple. Comment harmoniser de façon automatique : transformer soit tous les noms en majuscule en nom propre, soit l'inverse ? Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y avoir (ex 1) des noms d'organismes écrits sous forme classique donc à ne pas modifier, que le nom et le prénom (parfois une initiale et un point seulement) sont toujours séparés par une virgule, qu'il n'y a parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs). Merci
Salut à toi
Onglet Feuil1 colonne A à traiter
Ce code :
Sheets("Feuil1").Activate For Each c In Worksheets("Feuil1").Range("A1", [A65535].End(xlUp)) Départ = 1 Nom = "" For i = 1 To Len(c) Car = Mid(c, i, 1) If Car <> "," Then Nom = Nom & Car Else If Départ = 1 Then c.Value = UCase(Nom) & Mid(c, i) Else c.Value = Left(c, Départ) & UCase(Nom) & Mid(c, i) End If Nom = "" Départ = i End If If Car = "" Then Nom = "" Départ = i End If Next Next
Tous les noms se terminant par une virgule sont traités
Function transforme(texte) a = Split(texte, "") For i = LBound(a) To UBound(a) p = InStr(a(i), ",") If p <> 0 Then temp = temp & UCase(Left(a(i), p - 1)) & "," & Mid(a(i), p + 1) & "" Else temp = temp & a(i) & "" End If Next i transforme = Left(temp, Len(temp) - 1) End Function
JB
On 21 jan, 09:14, jipeache wrote:
bonjour, Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe les noms d'auteur(s) d'ouvrages. La saisie s'est faite sous 2 formes, par exemple : Blondel-Loisel, Annie Litalien, Raymonde Canada. Ambassade (France). Services culturels Centre havrais de recherche historique - Les amis du vieux Havre ou : DELISLE, Léopold PASSY, Louis LE PREVOST, Auguste BORDEAUX, Raymond CHASSANT, Alfred par exemple. Comment harmoniser de façon automatique : transformer soit tous les noms en majuscule en nom propre, soit l'inverse ? Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y avoir (ex 1) des noms d'organismes écrits sous forme classique donc à ne pas modifier, que le nom et le prénom (parfois une initiale et un point seulement) sont toujours séparés par une virgule, qu'il n'y a parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs). Merci
Bonjour,
Function transforme(texte)
a = Split(texte, "")
For i = LBound(a) To UBound(a)
p = InStr(a(i), ",")
If p <> 0 Then
temp = temp & UCase(Left(a(i), p - 1)) & "," & Mid(a(i), p + 1)
& ""
Else
temp = temp & a(i) & ""
End If
Next i
transforme = Left(temp, Len(temp) - 1)
End Function
JB
On 21 jan, 09:14, jipeache <jipea...@gmail.com> wrote:
bonjour,
Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe
les noms d'auteur(s) d'ouvrages.
La saisie s'est faite sous 2 formes, par exemple :
Blondel-Loisel, Annie Litalien, Raymonde Canada. Ambassade
(France). Services culturels Centre havrais de recherche historique
- Les amis du vieux Havre
ou :
DELISLE, Léopold PASSY, Louis LE PREVOST, Auguste BORDEAUX,
Raymond CHASSANT, Alfred
par exemple.
Comment harmoniser de façon automatique : transformer soit tous les
noms en majuscule en nom propre, soit l'inverse ?
Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y
avoir (ex 1) des noms d'organismes écrits sous forme classique donc à
ne pas modifier, que le nom et le prénom (parfois une initiale et un
point seulement) sont toujours séparés par une virgule, qu'il n'y a
parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs).
Merci
Function transforme(texte) a = Split(texte, "") For i = LBound(a) To UBound(a) p = InStr(a(i), ",") If p <> 0 Then temp = temp & UCase(Left(a(i), p - 1)) & "," & Mid(a(i), p + 1) & "" Else temp = temp & a(i) & "" End If Next i transforme = Left(temp, Len(temp) - 1) End Function
JB
On 21 jan, 09:14, jipeache wrote:
bonjour, Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe les noms d'auteur(s) d'ouvrages. La saisie s'est faite sous 2 formes, par exemple : Blondel-Loisel, Annie Litalien, Raymonde Canada. Ambassade (France). Services culturels Centre havrais de recherche historique - Les amis du vieux Havre ou : DELISLE, Léopold PASSY, Louis LE PREVOST, Auguste BORDEAUX, Raymond CHASSANT, Alfred par exemple. Comment harmoniser de façon automatique : transformer soit tous les noms en majuscule en nom propre, soit l'inverse ? Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y avoir (ex 1) des noms d'organismes écrits sous forme classique donc à ne pas modifier, que le nom et le prénom (parfois une initiale et un point seulement) sont toujours séparés par une virgule, qu'il n'y a parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs). Merci
Brunos
C'est beaucoup plus court avec Split, évidemment ! Merci JB. Mais on peut faire un peu + court : temp = temp & UCase(Left(a(i), p - 1)) & Mid(a(i), p) & "" Brunos :o)
"JB" a écrit dans le message de news:
Bonjour,
Function transforme(texte) a = Split(texte, "") For i = LBound(a) To UBound(a) p = InStr(a(i), ",") If p <> 0 Then temp = temp & UCase(Left(a(i), p - 1)) & "," & Mid(a(i), p + 1) & "" Else temp = temp & a(i) & "" End If Next i transforme = Left(temp, Len(temp) - 1) End Function
JB
On 21 jan, 09:14, jipeache wrote:
bonjour, Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe les noms d'auteur(s) d'ouvrages. La saisie s'est faite sous 2 formes, par exemple : Blondel-Loisel, Annie Litalien, Raymonde Canada. Ambassade (France). Services culturels Centre havrais de recherche historique - Les amis du vieux Havre ou : DELISLE, Léopold PASSY, Louis LE PREVOST, Auguste BORDEAUX, Raymond CHASSANT, Alfred par exemple. Comment harmoniser de façon automatique : transformer soit tous les noms en majuscule en nom propre, soit l'inverse ? Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y avoir (ex 1) des noms d'organismes écrits sous forme classique donc à ne pas modifier, que le nom et le prénom (parfois une initiale et un point seulement) sont toujours séparés par une virgule, qu'il n'y a parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs). Merci
C'est beaucoup plus court avec Split, évidemment ! Merci JB.
Mais on peut faire un peu + court :
temp = temp & UCase(Left(a(i), p - 1)) & Mid(a(i), p) & ""
Brunos
:o)
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
b0a7678d-b2cb-4ded-b2ee-b0849b237c62@q39g2000hsf.googlegroups.com...
Bonjour,
Function transforme(texte)
a = Split(texte, "")
For i = LBound(a) To UBound(a)
p = InStr(a(i), ",")
If p <> 0 Then
temp = temp & UCase(Left(a(i), p - 1)) & "," & Mid(a(i), p + 1)
& ""
Else
temp = temp & a(i) & ""
End If
Next i
transforme = Left(temp, Len(temp) - 1)
End Function
JB
On 21 jan, 09:14, jipeache <jipea...@gmail.com> wrote:
bonjour,
Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe
les noms d'auteur(s) d'ouvrages.
La saisie s'est faite sous 2 formes, par exemple :
Blondel-Loisel, Annie Litalien, Raymonde Canada. Ambassade
(France). Services culturels Centre havrais de recherche historique
- Les amis du vieux Havre
ou :
DELISLE, Léopold PASSY, Louis LE PREVOST, Auguste BORDEAUX,
Raymond CHASSANT, Alfred
par exemple.
Comment harmoniser de façon automatique : transformer soit tous les
noms en majuscule en nom propre, soit l'inverse ?
Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y
avoir (ex 1) des noms d'organismes écrits sous forme classique donc à
ne pas modifier, que le nom et le prénom (parfois une initiale et un
point seulement) sont toujours séparés par une virgule, qu'il n'y a
parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs).
Merci
C'est beaucoup plus court avec Split, évidemment ! Merci JB. Mais on peut faire un peu + court : temp = temp & UCase(Left(a(i), p - 1)) & Mid(a(i), p) & "" Brunos :o)
"JB" a écrit dans le message de news:
Bonjour,
Function transforme(texte) a = Split(texte, "") For i = LBound(a) To UBound(a) p = InStr(a(i), ",") If p <> 0 Then temp = temp & UCase(Left(a(i), p - 1)) & "," & Mid(a(i), p + 1) & "" Else temp = temp & a(i) & "" End If Next i transforme = Left(temp, Len(temp) - 1) End Function
JB
On 21 jan, 09:14, jipeache wrote:
bonjour, Dans un tableau de 10000 lignes environ, j'ai une colonne qui indexe les noms d'auteur(s) d'ouvrages. La saisie s'est faite sous 2 formes, par exemple : Blondel-Loisel, Annie Litalien, Raymonde Canada. Ambassade (France). Services culturels Centre havrais de recherche historique - Les amis du vieux Havre ou : DELISLE, Léopold PASSY, Louis LE PREVOST, Auguste BORDEAUX, Raymond CHASSANT, Alfred par exemple. Comment harmoniser de façon automatique : transformer soit tous les noms en majuscule en nom propre, soit l'inverse ? Sachant que le " " est un séparateur de nom d'auteur, qu'il peut y avoir (ex 1) des noms d'organismes écrits sous forme classique donc à ne pas modifier, que le nom et le prénom (parfois une initiale et un point seulement) sont toujours séparés par une virgule, qu'il n'y a parfois qu'un nom d'auteur (mais la majorité d'ouvrages collectifs). Merci
jipeache
On 21 jan, 12:58, "Brunos" wrote:
C'est beaucoup plus court avec Split, évidemment ! Merci JB. Mais on peut faire un peu + court : temp = temp & UCase(Left(a(i), p - 1)) & Mid(a(i), p) & "" Brunos :o)
"JB" a écrit dans le message de news:
Bonjour,
Function transforme(texte) a = Split(texte, "") For i = LBound(a) To UBound(a) p = InStr(a(i), ",") If p <> 0 Then temp = temp & UCase(Left(a(i), p - 1)) & "," & Mid(a(i), p + 1) & "" Else temp = temp & a(i) & "" End If Next i transforme = Left(temp, Len(temp) - 1) End Function
JB
Merci à tous. Je n'ai pas encore pu tester, un autre boulot m'est tombé dessus... Je regarde la semaine prochaine. Merci encore JP
On 21 jan, 12:58, "Brunos" <pasdem...@moi.mezig> wrote:
C'est beaucoup plus court avec Split, évidemment ! Merci JB.
Mais on peut faire un peu + court :
temp = temp & UCase(Left(a(i), p - 1)) & Mid(a(i), p) & ""
Brunos
:o)
"JB" <boisgont...@hotmail.com> a écrit dans le message de news:
b0a7678d-b2cb-4ded-b2ee-b0849b237...@q39g2000hsf.googlegroups.com...
Bonjour,
Function transforme(texte)
a = Split(texte, "")
For i = LBound(a) To UBound(a)
p = InStr(a(i), ",")
If p <> 0 Then
temp = temp & UCase(Left(a(i), p - 1)) & "," & Mid(a(i), p + 1)
& ""
Else
temp = temp & a(i) & ""
End If
Next i
transforme = Left(temp, Len(temp) - 1)
End Function
JB
Merci à tous.
Je n'ai pas encore pu tester, un autre boulot m'est tombé dessus...
Je regarde la semaine prochaine.
Merci encore
JP
C'est beaucoup plus court avec Split, évidemment ! Merci JB. Mais on peut faire un peu + court : temp = temp & UCase(Left(a(i), p - 1)) & Mid(a(i), p) & "" Brunos :o)
"JB" a écrit dans le message de news:
Bonjour,
Function transforme(texte) a = Split(texte, "") For i = LBound(a) To UBound(a) p = InStr(a(i), ",") If p <> 0 Then temp = temp & UCase(Left(a(i), p - 1)) & "," & Mid(a(i), p + 1) & "" Else temp = temp & a(i) & "" End If Next i transforme = Left(temp, Len(temp) - 1) End Function
JB
Merci à tous. Je n'ai pas encore pu tester, un autre boulot m'est tombé dessus... Je regarde la semaine prochaine. Merci encore JP