XL 2010 Macro VBA Excel (Doublon,SansAccents,Maj,Min,Nompropre,Espaces superflus)

Virginie17d

XLDnaute Occasionnel
1588208871672.png
 

Pièces jointes

  • MACROS VBA PERSONNEL.xlsm
    60.1 KB · Affichages: 264

patricktoulon

XLDnaute Barbatruc
non tu va etre surpris thierry
les macro fonctionne car dans le exportedUI on voit bien que le chemin de la macro est complet chemin du fichier>module>nom macro
ça a le désavantage d'ouvrir le fichier contenant la macro
mais perso si c'est un xla(m) plus besoins d'activer la ref (TU ME SUIS;) )
 

Virginie17d

XLDnaute Occasionnel
Re-Bonjour @patricktoulon , @Virginie17d , le Forum

Grand merci Patrick, en effet moi aussi je ne passais que par CustomUI jusqu'à présent, je ne m'étais jamais interessé à voir depuis le File/Custom /Ribbon pour affecter des macros directement par là...

Et donc comme Virginie vient de confirmer, et ce que je viens aussi de regarder avec ton fichier du post #8, et donc ce n'est pas "portable", mais c'est ce dont je me doutais un peu :

Ce qui implique que les macros doivent se situer dans le "Personnal..xls" que l'on plaçait à l'époque dans un folder system "xlStart"... Ou alors une XLA dans son emplacement dédié aux AddIns... Sinon les boutons customs risquent de faire la 'gueule' si ils ne trouvent pas le fichier source...

Mais en tout cas merci Patrick et Virginie, j'ai appris un truc aujourd'hui ;)

Virginie, oui pour tes macros à proprement dit, donc pour Option Explicit déjà, as tu vu mes explications ?


Pour les codes eux mêmes on va jeter certainement un oeil et on te revient entre Patrick et moi.

@+Thierry
Re

Oui j'ai vu tes commentaires qui sont très claires, ce que je comprends c'est que pour mon module caractères qui permet de remplacer les caractères
1588243111875.png
en
1588243125784.png
je n'ai pas de moyen technique me permettant de créer un accès rapide dans le ruban.
Et effectivement je confirme que mes macros sont enregistrés dans le fichier Personnal afin de l'avoir à chaque ouverture de fichier sur mon pc. N'hésite pas à me reprendre si j'ai mal interprété. et j'attends de vos nouvelles quant aux restes.

Merci à vous
 

Virginie17d

XLDnaute Occasionnel
O
re


[#humour]
perso a fin d'éviter la migraine les gogole je les évitent :p
les gouts et les couleurs ce que j'en dis moi :D
[#humour]

pour le reste , je te montre comment je fait en #post9
tes macros fonctionnent (voir démo animée )
Je te suis à 300% j'ai dormis 2heures, captivée par ces nouvelles découvertes en les testant une à une jusqu'a trouver celle qui correspondait le mieux à mon besoin. mais a priori j'ai dormis 2heures de trop car je n'ai pas trouvé :) .Et Mes Macros fonctionnent partiellement pour certains et j'ai des erreurs d'exécution tel que "incomptabilité de type" que je ne sais pas résoudre. Mais pour une expérience de 24h, je me trouve pas mal [#humour]

Mais je vous laisse le temps, je suis pas à la minute, c'est déjà hyper sympa de me venir en aide
 

Virginie17d

XLDnaute Occasionnel
ben dans mon post 9 je travaille avec ton fichier
si tu fait exactement ce que je dis tes macros maj , min , trim space , nom propre ,fonctionnent pour concat j'ai pas testé mais l'appel est bon elle est bien appelée par le bouton
Pardonne moi je n'ai pas été claire, l'appel de mes Macros depuis le Ruban fonctionne, je n'ai pas de soucis, le problème est dans le contenu des modules dont les macros doit être incomplet ou faux.
 

patricktoulon

XLDnaute Barbatruc
ok
si tu veux bien tu va m'expliquer tes intention avec ta macro trim
mais c'est quoi ce bicmac
c'est sensé s'appliquer a quoi; a la selection active , a la colonne de la selection active , a tout le sheets??????????

avant de gratter les boutons faudrait peut être éclaircir tout ça

si tu veux bien essayons de travailler proprement en économisant mes neurones ;)
répond a ma question en rouge
VB:
Sub espacessuperflus_total()

    Dim counter As Long
    Dim lastRow As Long
    Dim column As Integer
    Dim Cell As Range
    Dim Adresse As String
    Dim AdresseColumn As Integer
    Dim AdresseRow As Integer

    Adresse = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address    'recherche la dernière cellule active de votre feuille.
    AdresseColumn = Range(Adresse).column
    AdresseRow = Range(Adresse).Row

    For Each Cell In Range(Cells(1, 1), Cells(AdresseRow, AdresseColumn))
        'burck!!!!et si tu en a 7 tu fait quoi tu ajoute une ligne? et si tu en a 8
        ' tu a "Application.Trim" pour ca
        'Cell.Value = RTrim(Cell.Value) 'supprime chaque espace superflue à droite
        'Cell.Value = LTrim(Cell.Value) 'supprime chaque espace superflu à gauche
        'Cell.Value = Replace(Cell.Value, "      ", " ")   'en remplace 6
        'Cell.Value = Replace(Cell.Value, "     ", " ")   'en remplace 5
        'Cell.Value = Replace(Cell.Value, "    ", " ")   'en remplace 4
        'Cell.Value = Replace(Cell.Value, "   ", " ")   'en remplace 3
        'Cell.Value = Replace(Cell.Value, "  ", " ")   'en remplace 2
        Cell.Value = Application.Trim(cell.Value)
    Next Cell

End Sub
 

Virginie17d

XLDnaute Occasionnel
d'accords je te la simplifie alors
on va faire comme ca si tu veux bien
VB:
Sub espacessuperflus_total()
    Dim cell As Range
    For Each cell In ActiveSheet.UsedRange: cell.Value = Application.Trim(cell.Value): Next cell
End Sub
c'est tout aussi bien ;)

Ok super, il est effectivement plus simple, par contre quand un espace est ajouté avant ou après un caractères tel que "-" ou "/", ca ne les supprimes pas
Ex : Valeur C4 de mon fichier Jean - Luc.jen / EXCEL par contre si j'ai une valeur Jean Luc.jen/EXCEL ca fonctionne correctement. Peut on y ajouter une condition?
 

Virginie17d

XLDnaute Occasionnel
soit
VB:
Sub espacessuperflus_total()
    Dim cell As Range
    For Each cell In ActiveSheet.UsedRange
    cell.Value = Application.Trim(Replace(Replace(cell.Value, " -", "-"), "- ", "-"))
    Next
End Sub
J'ai essayé d'ajouté, la même logique avec les "/" mais j'ai une alerte "fin d'instruction", j'ai un "hik" dans mes parenthèses

Sub espacessuperflus_total()
Dim cell As Range
For Each cell In ActiveSheet.UsedRange
cell.Value = Application.Trim(Replace(Replace(cell.Value, " -", "-"), "- ", "-"), " /", "/"), "/ ", "/"))

Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 352
Messages
2 087 519
Membres
103 575
dernier inscrit
rst