Simple Quote (apostrophe) de part et d'autre de chaque cellule non vide

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

philjourney

XLDnaute Junior
Bonjour à tous,

existe t-il une possiblité rapide de mettre automatiquement des ' devant et derriere chaque contenu d'une cellule, hormis la 1ère ligne. Ex: en A1 : Nom, prénom // en B1 : Ville de naissance
en A2 : 'Jean Michel DURAND' // en B2: 'Strasbourg'


Pour les dates je fais format personnalisé et je mets 'jjmmaaaa', pour les chiffres comme les code postaux je mets '0####' etc. Mais pour tout ce qui est texte, je suis obligé de faire ="'"&A2&"'" par exemple.

Je vous remercie de vos réponses. Bonne journée à tous,

Philippe
 
Re : Simple Quote (apostrophe) de part et d'autre de chaque cellule non vide

Bonjour philjourney

Un petit exemple est toujours préférable pour faire des essais...

Attention, si tu utilise les formats petrsonalisés, les ' ne seront qu'apparentes.
Si tu utilise une formule du type ="'"&A2&"'" les ' seront réellement présentent.
Ce n'est pas le même résultat.

Pour aller plus vite tu pourrais utiliser une macro de ce type:
VB:
Sub Ajout()
Dim i&, J&
With Sheets("Feuil1") ' nom de la feuille a adapter
    For i = 2 To .Cells(.Rows.Count, 1).End(3).Row
        For J = 1 To 2 'Nombre de colonnes a adapter
            .Cells(i, J).Value = "'" & .Cells(i, J).Value & "'"
        Next J
    Next i
End With
End Sub

Si tu as vraiment beaucoup de lignes / colonnes on pourra améliorer la vitesse d'exécution.

Cordialement
 
Re : Simple Quote (apostrophe) de part et d'autre de chaque cellule non vide

Merci beaucoup Efgé!! En effet mes tableau contiennent 58 colonnes je crois et les lignes varient de 150 à 1000 selon les dossiers. Ceci étant un membre de ce forum m'a fait une macro pour modifier le tableau initial dans un format d'import qui ne comporte que 2 colonnes et jusqu'à 57000 lignes (58-1 x 1000).
Je ne sais pas si c'est plus simple dans ce cas là ?
 
Re : Simple Quote (apostrophe) de part et d'autre de chaque cellule non vide

Re

Sans exemple, une proposition qui iras plus vite :
VB:
Sub Ajout_2()
Dim T As Variant, i&, J&
With Sheets("Feuil1") ' nom de la feuille a adapter
    T = .UsedRange.Offset(1, 0).Resize(.UsedRange.Rows.Count - 1, .UsedRange.Columns.Count)
    For i = LBound(T, 1) To UBound(T, 1)
        For J = LBound(T, 2) To UBound(T, 2)
            T(i, J) = "'" & T(i, J) & "'"
        Next J
    Next i
    .Cells(2, 1).Resize(UBound(T, 1), UBound(T, 2)) = T
End With
End Sub

Mais franchement, je pense que tu devrais nous dire tout de suite d'où tu parts et où tu veux arriver....


Cordialement
 
Re : Simple Quote (apostrophe) de part et d'autre de chaque cellule non vide

Alors voilà un exemple, j'ai supprimé les infos sensibles mais le principe est le même. Dans l'onglet format entrée, il s'agit du format tel que je le mets en forme, avec les apostrophes devant et derrieres.
En y réflechissant, il me suffirait après la macro de faire en C1 : ="'"&B1&"'" et de tirer sur tout le long. Dans ce cas je n'aurais même pas à prévoir avant la macro les apostrophes.
En revanche il y a ces problèmes de mises en forme non ceonservées pour les dates et pour certains montants et autres codes. Egalement les champs vides doivent être supprimés manuellement. Ceci n'est pas très embetant mais si c'es automatisable je suis toujours preneur.
 

Pièces jointes

Dernière édition:
Re : Simple Quote (apostrophe) de part et d'autre de chaque cellule non vide

Bonjour à tous,
en fait en faisant le fichier hier, je me suis rendu compte que si je souhaitais garder la mise en forme après la macro de Jean Marcel, je devais formater en texte toutes les cellules. Pour forcer une mise en forme texte souhaitée, je fais pour chaque colonne la fonction =TEXTE("texte";"format")
Ca a l'air de marcher, même si ce n'est pas automatisable.

JE garde néanmoins ta macro Efgé, elle me sera utile. Merci beaucoup!!
 
Re : Simple Quote (apostrophe) de part et d'autre de chaque cellule non vide

Bonjour philjourney
Pas simple a comprendre ce que tu veux réellement...
Essai comme ceci (je suis resté le plus près possible du code d'origine):
VB:
Sub Transfert_2()
    Dim Cell As Range, LisgnesDes&
    With Sheets("Format_entrée")
    LisgnesDes = 1
        For Each Cell In .Range("A2:A" & .Range("A10000").End(xlUp).Row)
            For I = 2 To .Range("IV1").End(xlToLeft).Column
                Sheets("Format_sortie").Range("A" & LisgnesDes).Value = .Cells(1, I).Text
                Sheets("Format_sortie").Range("B" & LisgnesDes).Value = .Cells(Cell.Row, I).Text
                LisgnesDes = LisgnesDes + 1
            Next
        Next
    End With
End Sub

Cordialement
 
Re : Simple Quote (apostrophe) de part et d'autre de chaque cellule non vide

Re
Si non la même, a ma sauce, en ne récupérant pas les vides (on peourrais certainement aller plus vite)

VB:
Sub Transfert_3()
Dim Cell As Range, LisgnesDes&, I&
Dim FE As Worksheet, FS As Worksheet

Set FE = Sheets("Format_entrée")
Set FS = Sheets("Format_sortie")

Application.ScreenUpdating = False
FS.Columns("A:B").ClearContents
For Each Cell In FE.Range("A2:A" & FE.Cells(FE.Rows.Count, 1).End(xlUp).Row)
    For I = 2 To FE.Range("IV1").End(xlToLeft).Column
        If FE.Cells(Cell.Row, I).Value < > "" Then
            LisgnesDes = LisgnesDes + 1
            FS.Range("A" & LisgnesDes).Value = FE.Cells(1, I).Text
            FS.Range("B" & LisgnesDes).Value = FE.Cells(Cell.Row, I).Text
        End If
    Next I
Next Cell

End Sub
Cordialement
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
Réponses
2
Affichages
2 K
dagada75
D
Retour