Microsoft 365 Enlever les espaces dans une colonne pour impression code VBA

dubarre

XLDnaute Occasionnel
Bonjour à tous

Je viens vers vous car j’ai une petite question à vous poser quand vous ouvrez le classeur vous

cliquez sur « consulter » > édition > « édition courante » > « planche d’étiquette » > « individuelle » et vous mettez au hasard un nom cliquez sur « valider » ensuite cliquez « planche d’étiquettes » ça vous emmène sur l’onglet "Planche_Imp_Indiv"

vous pouvez voir l’adresse en plusieurs fois au format pour les planche d'éttiquette autocollants que je souhaite par contre je voudrais que dans chaque partie d’adresse si il y a des espaces entre les lignes qu’elle se comble automatiquement

car plusieurs adresses n’ont pas le même nombre de lignes il y a des compléments d’adresse qu’il y a pas dans d’autres et ainsi de suite donc je voulais savoir comment j’aurais pu organiser ça s’il vous plaît en code VBA

j’ai voulu tester dans Word mais je n’arrive pas à comprendre comment cela fonctionne et en plus je voudrais importer l’adresse directement mais ça devient compliqué donc je pense que le plus simple c’est de le faire sur une page Excel que j’ai réussi à mettre en forme selon ma planche d’étiquettes personnalisée.

Toutes les idées son les bien venue s'il vous plaît.
 

Pièces jointes

  • Gestion_des_Artistes_vedparticul.xlsm
    781.9 KB · Affichages: 39
Solution
re:
tiens vire TOUT!!!!!!!(interminable) ton evenement "CommandButton14_clicl()"
et met celui ci
VB:
Private Sub CommandButton14_Click()
    Dim baseDD As Worksheet, a&, TbL
    Unload Me
    Unload UserForm6
    Sheets("Planche_Imp_Indiv").Visible = True
    Set baseDD = Sheets("Planche_Imp_Indiv")
    '--------------------------------------------------------------
    'Impression étiquette colonnes 1 et 2
    '--------------------------------------------------------------
    texte = Me.CbxCivilite.Value & " " & Me.TextBox2.Value & " " & Me.TextBox24.Value & "," & Me.TextBox3.Value & "," & Me.TextBox4.Value & "," & Me.TextBox5.Value & "," & Me.TextBox6.Value & "," & Me.TextBox7.Value & "," & Me.TextBox9.Value & ","
    TbL =...

patricktoulon

XLDnaute Barbatruc
re
et tout a fait entre nous je n'en vois pas l'utilité si le mot de passe doit être visible dans VBA pour être comparer à ce qui a été tapé

sinon c'est simple on peut faire exactement la même chose que ton inputbox intercepté par du hooking avec un simple userform avec le textbox en password
sans api sans galère dans le teston

démonstration d'un vrai faux inputbox
demo6.gif

 

Pièces jointes

  • un vrai faux inputbox password.xlsm
    16.6 KB · Affichages: 3

dubarre

XLDnaute Occasionnel
Bonjour

@patricktoulon tout d'abord merci de m'aider à améliorer ce classeur je t'explique ce classeur va être utilisé par l'association dont je fais parti je suis en train de le créer pour eux et il n'y a que certaines personnes qui vont avoir accès je n'ai trouvé que cette façon pour pouvoir taper le mot de passe et que ce soit des étoiles à la place ce que m'a demandé mon responsable je vais regarder ce que tu proposes au-dessus.

J'aurais une petite question dans la déclaration suivante pour les formulaires
VB:
 Dim oldW#, oldH#, ctrl, CfnewW#, CFnewH#, D
pourquoi certaines personnes mettent exemple :as integer ou autre et que certaines personnes comme vous ne mettes rien c'est quoi l'utilité de le mettre ou de ne pas la mettre s'il vous plaît.
 

dubarre

XLDnaute Occasionnel
re @patricktoulon

d'accord je ne savais pas que ça voulait définir sa est-ce que c'est universel ou c'est toi qui le déclares au départ du classeur je sais ma question peux paraître bête mais pour moi c'est universel en tout cas ça me semble.

D'autre part je voulais te poser la question par rapport à ce que tu me proposes dans le classeur vrai-faux j'ai à-peu-près compris comment fonctionne le formulaire mode passe mais comment lui attitré un mot de passe et qu'il soit sécurisé je sais que je peux mettre un mot de passe sur le code VBA mais qui est facilement craquable pour en avoir fait le test il y a-t-il une autre façon de sécuriser le classeur hormis le mot de passe au tout début de l'ouverture du classeur.
 

dubarre

XLDnaute Occasionnel
re je sais compliquer les choses ce que je vais te dire par la suite mais en faite je sais pas si tu as fait attention mais il y a une partie où la personne va pouvoir mettre à jour ce classeur et d'autres personnes peuvent le consulter voilà pourquoi sur la page de garde il y a deux boutons.
 

patricktoulon

XLDnaute Barbatruc
re
je t'ai fait cet exemple pour te montrer a quel point pour faire exactement ce que tu fait avec ton inputbox hooké est facile et sans api
mais en aucun cas on peu garantir l'inviolabilité du mot de passe
donc ma réponse est non c'est de la marmelade
le mot de passe au projet est la plus grande securité que l'on peut obtenir
rest une solution l'obfuscation du code
 

dubarre

XLDnaute Occasionnel
re

Quand tu veux dire obfucation veut dire quoi voilà ce que j'ai trouvé comme définition sur Internet
car je me coucherai moins bête ce soir vient de m'apprendre un nouveau mot obscurcissement ou brouillage est une stratégie de gestion de l'information qui vise à obscurcir le sens qui peut être tiré d'un message. Donc je suis désolé mais je ne vois pas trop comment faire ça

En vous remerciant en tout cas énormément de votre aide même si je sais que je suis brouillon dans ce que je fais mais sur ce forum j'en apprends beaucoup et j'essaye de m'améliorer tous les jours et un autre classeur va venir compléter le premier j'essaierai de faire attention à tout ce que vous avez transmis.
 

patricktoulon

XLDnaute Barbatruc
re

pose toi sur ton fauteuil
heu...!!! non avant va dans ta salle de bain direction la pharmacie et prend un tube d'aspro
maintenant oui pose toi sur ton fauteuil
heu.. !! non va chercher un pichet d'eau et un verre (de pinard pourquoi pas ca augmentera l'effet de l'aspro)
maintenant tu peux te poser sur ton fauteuil

un peu de lecture
 

dubarre

XLDnaute Occasionnel
ok je te remercie je viens de jeter un coup d'œil en ce qui concerne le verre de rouge je vais attendre apéro ce soir pour l'instant je pense que je vais vider le tube d'aspirine lol

@patricktoulon merci de ton aide je pense que je reviendrai t'embêter car je n'ai pas fini d'apprendre d'autre part si vraiment tu as le temps regarde le classeur et dis-moi s'il y a des choses j'ai réalisé dedans qui pourrait se faire plus simplement exemple beaucoup de formulaire est-ce que je ne pourrai pas simplifier les choses

mais pour la question de base le sujet est clos en vous remerciant à tous.
 

patricktoulon

XLDnaute Barbatruc
re
tu es sur que tu veux mon avis ? :p :p :p
non je ne l'ai pas fait par ce que tu dois avancer a ton rythme (pas de galère dans le teston)
j’aurais écrit pratiquement tout différemment mais c'est mieux de laisser un code que tu comprends
et que tu pourra debuguer toi même ,tu progressera avec le temps
tu apprendra a économiser de l'uc (choisir tel ou tel méthode) ça fera partie de ta signature

mais ne te focalise pas sur une quelconque protection elles sont illusoires :p

je regarderais quand même dans la journée et te donnerais quelques trucs ;)
 

patricktoulon

XLDnaute Barbatruc
tiens comme ca vite fait
voici 2 macros elle font la meme choses la 1 c'est la tienne l'autre c'est la mienne
TU UTILISE tantôt le name tantôt le code name de la feuille mais en fait ça ne concerne que la copie de bdd dans membre soit la feuil3

un moins averti a vite fait de s'y perdre

VB:
Sub ConsultationMembres()

    Feuil3.Visible = xlSheetVisible
    Feuil3.Cells.Clear
    ThisWorkbook.Sheets("BDD").Range("A1").CurrentRegion.Copy Sheets("Membres").Range("A1")
    Feuil3.Activate
    Rows("1:2").Select    '???ça sert a quoi de selecter 2 lignes
    Range("B2").Select    '??? puis d'en selectionner q'une cellule
    Selection.AutoFilter    'surtout pour faire un autofilter dessus


    Worksheets("Membres").Range("A2:AG10000").Columns.AutoFit

    Feuil3.Columns("A:A").ColumnWidth = 7

End Sub

'VERSION PAT '
Sub ConsultationMembres()

    With Feuil3
        .Visible = xlSheetVisible
        .Cells.Clear
        ThisWorkbook.Sheets("BDD").Range("A1").CurrentRegion.Copy .Range("A1")
        .Activate
        .Range("A2:AG10000").Columns.AutoFit
        .Columns("A:A").ColumnWidth = 7
        .Range("B2").AutoFilter   
     End With

End Sub

tu vois ;)
 

patricktoulon

XLDnaute Barbatruc
re
tiens autre chose
tu peux m'expliquer l'utilité d'en avoir 2 :eek::p:p
VB:
Sub FermerClasseur2()

    Sheets("Page de garde").Activate

    '------------------------------------------------
    'ferme le classeur en enregistrant (true)
    '------------------------------------------------

    Workbooks("Gestion_des_Artistes_v00.1.xlsm").Close True
    DoEvents
    Application.Quit
End Sub

Sub FermerClasseur3()
'-----------------------------------------------
'ferme le classeur en enregistrant (true)
'-----------------------------------------------

    Workbooks("Gestion_des_Artistes_v00.1.xlsm").Close True
    DoEvents
    Application.Quit

End Sub
 

dubarre

XLDnaute Occasionnel
re @patricktoulon

je te remercie de te pencher sur le classeur pour la première solution que tu proposes "with" en faite en faisant comme ça je comprends a quoi with sert

pour le second en fait c'est que je n'ai pas effacé simplement le fermerclasseur3

concernant les formulaires quand je dis les formulaires c'est vraiment tous est-ce que tu crois qu'il y a une autre façon de faire plus simple pour l'utilisation car j'aimerais essayer de concentrer les userform pour éviter d'en faire trop comme c'est le cas sur ce classeur
 

Discussions similaires