Double problème Suppression de caractères italique et liaison
7 réponses
Philippe DROUET
Bonjour à tous,
Voici mon premier problème.
Dans certaines cellules d'un tableau excel j'ais des noms suivis d'une
(ou deux) lettres en italique.
Ex : DURANT w <- le w en italique mais le début en normal
Comment par macro ou VBA supprimer cette (ou ces lettres) en italique
pour me retrouver uniquement avec le nom sans espace ni lettres
italiques.
Petite précision, certain noms sont des noms composés avec des espace
(que je ne veux bien sur pas supprimer !).
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas
arrivé :-(
Mon deuxième problème est je pense plus simple :
Lors d'un copier / coller entre deux documents avec les commandes
suivantes
Range("A1:C500").select
selection.copy
ensuite je colle dans l'autre document avec la commde pastespecial
uniquement les valeurs
je retrouve les liaisons dans le deuxième document !
Je souhaiterais ne retrouver que les valeurs !
comment faire ?
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
MichDenis
Bonsoir Philippe,
Tu peux essayer ceci :
Cette procédure fait une vérification seulement pour les 2 derniers caractères de chaque cellule
à toi de déterminer le nom de la feuille et la plage de cellules concernées.
'------------------------------ Sub Italique()
Dim Rg As Range Dim C As Range
With Worksheets("Feuil1") Set Rg = .Range("A1:A5") End With
For Each C In Rg For a = 1 To 2 With C.Characters(Len(C), 1) If .Font.Italic = True Then C = Left(C, Len(C)) End If End With Next Next Set Rg = Nothing: Set C = Nothing End Sub '-----------------------------
Salutations!
"Philippe DROUET" a écrit dans le message de news: Bonjour à tous, Voici mon premier problème. Dans certaines cellules d'un tableau excel j'ais des noms suivis d'une (ou deux) lettres en italique. Ex : DURANT w <- le w en italique mais le début en normal
Comment par macro ou VBA supprimer cette (ou ces lettres) en italique pour me retrouver uniquement avec le nom sans espace ni lettres italiques. Petite précision, certain noms sont des noms composés avec des espace (que je ne veux bien sur pas supprimer !).
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Mon deuxième problème est je pense plus simple : Lors d'un copier / coller entre deux documents avec les commandes suivantes Range("A1:C500").select selection.copy ensuite je colle dans l'autre document avec la commde pastespecial uniquement les valeurs
je retrouve les liaisons dans le deuxième document ! Je souhaiterais ne retrouver que les valeurs ! comment faire ?
Merci d'avance.
Bonsoir Philippe,
Tu peux essayer ceci :
Cette procédure fait une vérification seulement pour les 2 derniers caractères de chaque cellule
à toi de déterminer le nom de la feuille et la plage de cellules concernées.
'------------------------------
Sub Italique()
Dim Rg As Range
Dim C As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:A5")
End With
For Each C In Rg
For a = 1 To 2
With C.Characters(Len(C), 1)
If .Font.Italic = True Then
C = Left(C, Len(C))
End If
End With
Next
Next
Set Rg = Nothing: Set C = Nothing
End Sub
'-----------------------------
Salutations!
"Philippe DROUET" <philippe.drouet7_@wanadoo.fr> a écrit dans le message de news: mn.f9777d53bc141552.5857@wanadoo.fr...
Bonjour à tous,
Voici mon premier problème.
Dans certaines cellules d'un tableau excel j'ais des noms suivis d'une
(ou deux) lettres en italique.
Ex : DURANT w <- le w en italique mais le début en normal
Comment par macro ou VBA supprimer cette (ou ces lettres) en italique
pour me retrouver uniquement avec le nom sans espace ni lettres
italiques.
Petite précision, certain noms sont des noms composés avec des espace
(que je ne veux bien sur pas supprimer !).
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas
arrivé :-(
Mon deuxième problème est je pense plus simple :
Lors d'un copier / coller entre deux documents avec les commandes
suivantes
Range("A1:C500").select
selection.copy
ensuite je colle dans l'autre document avec la commde pastespecial
uniquement les valeurs
je retrouve les liaisons dans le deuxième document !
Je souhaiterais ne retrouver que les valeurs !
comment faire ?
Cette procédure fait une vérification seulement pour les 2 derniers caractères de chaque cellule
à toi de déterminer le nom de la feuille et la plage de cellules concernées.
'------------------------------ Sub Italique()
Dim Rg As Range Dim C As Range
With Worksheets("Feuil1") Set Rg = .Range("A1:A5") End With
For Each C In Rg For a = 1 To 2 With C.Characters(Len(C), 1) If .Font.Italic = True Then C = Left(C, Len(C)) End If End With Next Next Set Rg = Nothing: Set C = Nothing End Sub '-----------------------------
Salutations!
"Philippe DROUET" a écrit dans le message de news: Bonjour à tous, Voici mon premier problème. Dans certaines cellules d'un tableau excel j'ais des noms suivis d'une (ou deux) lettres en italique. Ex : DURANT w <- le w en italique mais le début en normal
Comment par macro ou VBA supprimer cette (ou ces lettres) en italique pour me retrouver uniquement avec le nom sans espace ni lettres italiques. Petite précision, certain noms sont des noms composés avec des espace (que je ne veux bien sur pas supprimer !).
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Mon deuxième problème est je pense plus simple : Lors d'un copier / coller entre deux documents avec les commandes suivantes Range("A1:C500").select selection.copy ensuite je colle dans l'autre document avec la commde pastespecial uniquement les valeurs
je retrouve les liaisons dans le deuxième document ! Je souhaiterais ne retrouver que les valeurs ! comment faire ?
Merci d'avance.
AV
** Problème 1 **
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Matricielle (validation par ctrl+maj+entrée) : =GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
Je souhaiterais ne retrouver que les valeurs !
** Problème 2 ** Pas besoin de sélectionner pour copier ! Exemple d'un classeur à un autre :
[[Classeur1]Feuil2!A1] = [[Classeur2]Feuil2!A1]
AV
** Problème 1 **
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas
arrivé :-(
Matricielle (validation par ctrl+maj+entrée) :
=GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
Je souhaiterais ne retrouver que les valeurs !
** Problème 2 **
Pas besoin de sélectionner pour copier !
Exemple d'un classeur à un autre :
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Matricielle (validation par ctrl+maj+entrée) : =GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
Je souhaiterais ne retrouver que les valeurs !
** Problème 2 ** Pas besoin de sélectionner pour copier ! Exemple d'un classeur à un autre :
[[Classeur1]Feuil2!A1] = [[Classeur2]Feuil2!A1]
AV
Philippe DROUET
MichDenis a formulé la demande :
Bonsoir Philippe,
Tu peux essayer ceci :
Cette procédure fait une vérification seulement pour les 2 derniers caractères de chaque cellule
à toi de déterminer le nom de la feuille et la plage de cellules concernées.
'------------------------------ Sub Italique()
Dim Rg As Range Dim C As Range
With Worksheets("Feuil1") Set Rg = .Range("A1:A5") End With
For Each C In Rg For a = 1 To 2 With C.Characters(Len(C), 1) If .Font.Italic = True Then C = Left(C, Len(C)) End If End With Next Next Set Rg = Nothing: Set C = Nothing End Sub '-----------------------------
Salutations!
"Philippe DROUET" a écrit dans le message de news: Bonjour à tous, Voici mon premier problème. Dans certaines cellules d'un tableau excel j'ais des noms suivis d'une (ou deux) lettres en italique. Ex : DURANT w <- le w en italique mais le début en normal
Comment par macro ou VBA supprimer cette (ou ces lettres) en italique pour me retrouver uniquement avec le nom sans espace ni lettres italiques. Petite précision, certain noms sont des noms composés avec des espace (que je ne veux bien sur pas supprimer !).
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Mon deuxième problème est je pense plus simple : Lors d'un copier / coller entre deux documents avec les commandes suivantes Range("A1:C500").select selection.copy ensuite je colle dans l'autre document avec la commde pastespecial uniquement les valeurs
je retrouve les liaisons dans le deuxième document ! Je souhaiterais ne retrouver que les valeurs ! comment faire ?
Merci d'avance.
Merci bien, je vais tester ça demain au boulot.
cordialement
MichDenis a formulé la demande :
Bonsoir Philippe,
Tu peux essayer ceci :
Cette procédure fait une vérification seulement pour les 2 derniers
caractères de chaque cellule
à toi de déterminer le nom de la feuille et la plage de cellules concernées.
'------------------------------
Sub Italique()
Dim Rg As Range
Dim C As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:A5")
End With
For Each C In Rg
For a = 1 To 2
With C.Characters(Len(C), 1)
If .Font.Italic = True Then
C = Left(C, Len(C))
End If
End With
Next
Next
Set Rg = Nothing: Set C = Nothing
End Sub
'-----------------------------
Salutations!
"Philippe DROUET" <philippe.drouet7_@wanadoo.fr> a écrit dans le message de
news: mn.f9777d53bc141552.5857@wanadoo.fr... Bonjour à tous,
Voici mon premier problème.
Dans certaines cellules d'un tableau excel j'ais des noms suivis d'une
(ou deux) lettres en italique.
Ex : DURANT w <- le w en italique mais le début en normal
Comment par macro ou VBA supprimer cette (ou ces lettres) en italique
pour me retrouver uniquement avec le nom sans espace ni lettres
italiques.
Petite précision, certain noms sont des noms composés avec des espace
(que je ne veux bien sur pas supprimer !).
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas
arrivé :-(
Mon deuxième problème est je pense plus simple :
Lors d'un copier / coller entre deux documents avec les commandes
suivantes
Range("A1:C500").select
selection.copy
ensuite je colle dans l'autre document avec la commde pastespecial
uniquement les valeurs
je retrouve les liaisons dans le deuxième document !
Je souhaiterais ne retrouver que les valeurs !
comment faire ?
Cette procédure fait une vérification seulement pour les 2 derniers caractères de chaque cellule
à toi de déterminer le nom de la feuille et la plage de cellules concernées.
'------------------------------ Sub Italique()
Dim Rg As Range Dim C As Range
With Worksheets("Feuil1") Set Rg = .Range("A1:A5") End With
For Each C In Rg For a = 1 To 2 With C.Characters(Len(C), 1) If .Font.Italic = True Then C = Left(C, Len(C)) End If End With Next Next Set Rg = Nothing: Set C = Nothing End Sub '-----------------------------
Salutations!
"Philippe DROUET" a écrit dans le message de news: Bonjour à tous, Voici mon premier problème. Dans certaines cellules d'un tableau excel j'ais des noms suivis d'une (ou deux) lettres en italique. Ex : DURANT w <- le w en italique mais le début en normal
Comment par macro ou VBA supprimer cette (ou ces lettres) en italique pour me retrouver uniquement avec le nom sans espace ni lettres italiques. Petite précision, certain noms sont des noms composés avec des espace (que je ne veux bien sur pas supprimer !).
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Mon deuxième problème est je pense plus simple : Lors d'un copier / coller entre deux documents avec les commandes suivantes Range("A1:C500").select selection.copy ensuite je colle dans l'autre document avec la commde pastespecial uniquement les valeurs
je retrouve les liaisons dans le deuxième document ! Je souhaiterais ne retrouver que les valeurs ! comment faire ?
Merci d'avance.
Merci bien, je vais tester ça demain au boulot.
cordialement
Philippe DROUET
** Problème 1 **
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Matricielle (validation par ctrl+maj+entrée) : =GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
Je souhaiterais ne retrouver que les valeurs !
** Problème 2 ** Pas besoin de sélectionner pour copier ! Exemple d'un classeur à un autre :
[[Classeur1]Feuil2!A1] = [[Classeur2]Feuil2!A1]
AV
Bonsoir, Je ne savais pas que l'on pouvais mettre ça entre crochets. Bon ben je vais essayer ça demain aussi au boulot. Merci encore.
cordialement.
** Problème 1 **
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas
arrivé :-(
Matricielle (validation par ctrl+maj+entrée) :
=GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
Je souhaiterais ne retrouver que les valeurs !
** Problème 2 **
Pas besoin de sélectionner pour copier !
Exemple d'un classeur à un autre :
[[Classeur1]Feuil2!A1] = [[Classeur2]Feuil2!A1]
AV
Bonsoir,
Je ne savais pas que l'on pouvais mettre ça entre crochets.
Bon ben je vais essayer ça demain aussi au boulot.
Merci encore.
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Matricielle (validation par ctrl+maj+entrée) : =GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
Je souhaiterais ne retrouver que les valeurs !
** Problème 2 ** Pas besoin de sélectionner pour copier ! Exemple d'un classeur à un autre :
[[Classeur1]Feuil2!A1] = [[Classeur2]Feuil2!A1]
AV
Bonsoir, Je ne savais pas que l'on pouvais mettre ça entre crochets. Bon ben je vais essayer ça demain aussi au boulot. Merci encore.
cordialement.
Philippe DROUET
Philippe DROUET a formulé ce jeudi :
** Problème 1 **
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Matricielle (validation par ctrl+maj+entrée) : =GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
Je souhaiterais ne retrouver que les valeurs !
** Problème 2 ** Pas besoin de sélectionner pour copier ! Exemple d'un classeur à un autre :
[[Classeur1]Feuil2!A1] = [[Classeur2]Feuil2!A1]
AV
Bonsoir, Je ne savais pas que l'on pouvais mettre ça entre crochets. Bon ben je vais essayer ça demain aussi au boulot. Merci encore.
cordialement.
Re bonsoir Je viens de tester sur quelques lignes la formule suivante : =GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
elle fonctionne bien mais tant que l'intéressé ne saisi pas les dernières lettres en majuscule car sinon j'ai une erreur #N/A
Merci.
Philippe DROUET a formulé ce jeudi :
** Problème 1 **
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas
arrivé :-(
Matricielle (validation par ctrl+maj+entrée) :
=GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
Je souhaiterais ne retrouver que les valeurs !
** Problème 2 **
Pas besoin de sélectionner pour copier !
Exemple d'un classeur à un autre :
[[Classeur1]Feuil2!A1] = [[Classeur2]Feuil2!A1]
AV
Bonsoir,
Je ne savais pas que l'on pouvais mettre ça entre crochets.
Bon ben je vais essayer ça demain aussi au boulot.
Merci encore.
cordialement.
Re bonsoir
Je viens de tester sur quelques lignes la formule suivante :
=GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
elle fonctionne bien mais tant que l'intéressé ne saisi pas les
dernières lettres en majuscule car sinon j'ai une erreur #N/A
J'ai bien essayé avec queques fonctions de chaine, mais je n'y suis pas arrivé :-(
Matricielle (validation par ctrl+maj+entrée) : =GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
Je souhaiterais ne retrouver que les valeurs !
** Problème 2 ** Pas besoin de sélectionner pour copier ! Exemple d'un classeur à un autre :
[[Classeur1]Feuil2!A1] = [[Classeur2]Feuil2!A1]
AV
Bonsoir, Je ne savais pas que l'on pouvais mettre ça entre crochets. Bon ben je vais essayer ça demain aussi au boulot. Merci encore.
cordialement.
Re bonsoir Je viens de tester sur quelques lignes la formule suivante : =GAUCHE(A1;EQUIV(VRAI;CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))>96;0)-2)
elle fonctionne bien mais tant que l'intéressé ne saisi pas les dernières lettres en majuscule car sinon j'ai une erreur #N/A
Merci.
AV
elle fonctionne bien mais tant que l'intéressé ne saisi pas les dernières lettres en majuscule car sinon j'ai une erreur #N/A
Ben ...évidemment mais c'était pas évident dans ta question initiale ! En faisant donc une extraction en fonction de la position de la 1° lettre en italique (il en faut au moins une) : Fonction perso à mettre dans un module ordinaire :
Function ZZZ(c) For i = 1 To Len(c) If c.Characters(i, 1).Font.FontStyle _ = "Italique" Then Exit For Next ZZZ = Left(c, i - 2) End Function
PS : Merci d'écrire tes réponses en tête de message ! C'est la coutume ici et ... on y tient AV
elle fonctionne bien mais tant que l'intéressé ne saisi pas les
dernières lettres en majuscule car sinon j'ai une erreur #N/A
Ben ...évidemment mais c'était pas évident dans ta question initiale !
En faisant donc une extraction en fonction de la position de la 1° lettre en
italique (il en faut au moins une) :
Fonction perso à mettre dans un module ordinaire :
Function ZZZ(c)
For i = 1 To Len(c)
If c.Characters(i, 1).Font.FontStyle _
= "Italique" Then Exit For
Next
ZZZ = Left(c, i - 2)
End Function
PS : Merci d'écrire tes réponses en tête de message !
C'est la coutume ici et ... on y tient
AV
elle fonctionne bien mais tant que l'intéressé ne saisi pas les dernières lettres en majuscule car sinon j'ai une erreur #N/A
Ben ...évidemment mais c'était pas évident dans ta question initiale ! En faisant donc une extraction en fonction de la position de la 1° lettre en italique (il en faut au moins une) : Fonction perso à mettre dans un module ordinaire :
Function ZZZ(c) For i = 1 To Len(c) If c.Characters(i, 1).Font.FontStyle _ = "Italique" Then Exit For Next ZZZ = Left(c, i - 2) End Function
PS : Merci d'écrire tes réponses en tête de message ! C'est la coutume ici et ... on y tient AV
Philippe DROUET
AV avait énoncé :
elle fonctionne bien mais tant que l'intéressé ne saisi pas les dernières lettres en majuscule car sinon j'ai une erreur #N/A
Ben ...évidemment mais c'était pas évident dans ta question initiale ! En faisant donc une extraction en fonction de la position de la 1° lettre en italique (il en faut au moins une) : Fonction perso à mettre dans un module ordinaire :
Function ZZZ(c) For i = 1 To Len(c) If c.Characters(i, 1).Font.FontStyle _ = "Italique" Then Exit For Next ZZZ = Left(c, i - 2) End Function
PS : Merci d'écrire tes réponses en tête de message ! C'est la coutume ici et ... on y tient AV
Désolé si je n'ai pas été asser précis dans ma première question. Cette fois ça fonctionne à merveille :D Merci millllllllle fois, c'est génial et ça va m'éviter de très longues minutes de vérification et de suppression de ces saletés de lettres en italique qui n'avait rien à faire là.
encore merci.
AV avait énoncé :
elle fonctionne bien mais tant que l'intéressé ne saisi pas les
dernières lettres en majuscule car sinon j'ai une erreur #N/A
Ben ...évidemment mais c'était pas évident dans ta question initiale !
En faisant donc une extraction en fonction de la position de la 1° lettre en
italique (il en faut au moins une) :
Fonction perso à mettre dans un module ordinaire :
Function ZZZ(c)
For i = 1 To Len(c)
If c.Characters(i, 1).Font.FontStyle _
= "Italique" Then Exit For
Next
ZZZ = Left(c, i - 2)
End Function
PS : Merci d'écrire tes réponses en tête de message !
C'est la coutume ici et ... on y tient
AV
Désolé si je n'ai pas été asser précis dans ma première question.
Cette fois ça fonctionne à merveille :D
Merci millllllllle fois, c'est génial et ça va m'éviter de très longues
minutes de vérification et de suppression de ces saletés de lettres en
italique qui n'avait rien à faire là.
elle fonctionne bien mais tant que l'intéressé ne saisi pas les dernières lettres en majuscule car sinon j'ai une erreur #N/A
Ben ...évidemment mais c'était pas évident dans ta question initiale ! En faisant donc une extraction en fonction de la position de la 1° lettre en italique (il en faut au moins une) : Fonction perso à mettre dans un module ordinaire :
Function ZZZ(c) For i = 1 To Len(c) If c.Characters(i, 1).Font.FontStyle _ = "Italique" Then Exit For Next ZZZ = Left(c, i - 2) End Function
PS : Merci d'écrire tes réponses en tête de message ! C'est la coutume ici et ... on y tient AV
Désolé si je n'ai pas été asser précis dans ma première question. Cette fois ça fonctionne à merveille :D Merci millllllllle fois, c'est génial et ça va m'éviter de très longues minutes de vérification et de suppression de ces saletés de lettres en italique qui n'avait rien à faire là.