IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Userform textbox objet


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oui oui Franck je l'avais déjà fait ce procédé d'ailleurs dans certaines de mes application jestion de nom prenom addresse etc... je l'utilise
    j'ai voulu simplement un peu delirer avec cette listbox
    ca fonctionne en tout cas

    j'avais fait exactement la meme chose avec un listview on doit pouvoir retrouver la discussion visuellement c'était plus pratique avec celle ci a cause des bordure cellule

    j'avais meme demontrer au demandeur que l'on pouvait mettre des formule dans les cells


    mais juste pour délirer perso je vois plus une classe control entre nous sur tout que dans cet exemple il suffit de pas beaucoup 15 ligne maxi 25 avec les évènements dans la classe
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #22
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Un module de classe "Control" ne servirait pas à grand chose ici.
    Le module UserForm (entre nous soit dit, il s'agit d'un module de classe (particulier, mais de classe quand même)) se suffit largement.

    Mon "délire" à moi est extrêmement simpliste à réaliser et à maintenir.
    Il suffit de 5 textbox et de vérifier leur saisie. Dès que les 5 sont remplis, on ajoute une ligne à la listbox multicolonne.
    On ajoute à cela qu'un clic dans la listbox permet de remplir les textbox pour une éventuelle modification.
    Simpliste au possible avec les événements disponibles directement dans le module de l'userform.

    Maintenant, si ton "délire perso" est de "créer" un contrôle particulier, lance toi.
    Je te suivrais, mais de loin car, week end oblige, la famille avant tout!

    Je te relirais à ce sujet, volontiers, lundi.

    Bon week end à tous.

    Amicalement,
    Franck
    Cordialement,
    Franck

  3. #23
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Je ne reviens que pour répondre à ceci :
    pourrais tu me dire comment et/ou si c'est possible de laisser un control (label/textbox) apparent sur une listbox
    As tu essayé en encapsulant le textbox ou le label dans un frame?
    Cordialement,
    Franck

  4. #24
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour Franck
    j'avais essayé une frame déjà car en général elle se met toujours en premier plan mais non c'est pas bon
    je viens de tester avec le label dedans et non plus, la listbox garde toujours le owner
    tu a testé ma listbox ?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #25
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    tu a testé ma listbox ?
    Pas encore non.
    Trop peu de temps.
    Je le fais lundi.

    En effet, ça ne peux pas fonctionner avec un Frame.

    Sinon, ta solution est, peut-être, d'encapsuler ton TextBox dans un second UserForm sans barre de titre ni bordures.
    Cordialement,
    Franck

  6. #26
    Membre régulier
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Points : 87
    Points
    87
    Par défaut
    Salut à vous,

    La solution proposé par Theze était parfaite,

    mais je dois encore voir comme ajouter des formes (textbox ou autre) simplement avec des boucles,

    Franchement les gars si vous avez des recettes secrètes de chez microsoft n'hésitez pas,

    Je débute avec le VBA et je suis preneur de tout ce qui facilité les tâches.

    Ce que vous avez mit là est très pertinent et utile,

    Merci à vous tous.

  7. #27
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour,

    Franchement les gars si vous avez des recettes secrètes de chez microsoft n'hésitez pas,
    Franck n'a pas parlé de "recette", mais de l'utilisation d'une fonction "particulière" à utiliser dans une mise en oeuvre non moins particulière et qui échapperait de toutes manières à un développeur de bon niveau, voir assez avancé, ce qui n'est pas du tout ton cas, selon ce que tu en dis toi-même.
    Ce n'est certes pas cette fonction seule qui résoudrait ton problème. Elle serait à utiliser au sein d'une démarche et d'une conception assez complexes.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  8. #28
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    j'ai encore simplifié mon delire avec ma listbox

    voila ce que ça donne

    1. touche ENTER > ajoute une ligne
    2. touche tab(9) et flèche droit(39) et flèche gauche(37) déplace la sélection de colonne
    3. la touche back(8) supprime le dernier caractères
    4. le mouse move et down vous indique avec( le guide rougelabel) la colonne ou vous vous trouvez
    Bonjour Patrick,

    J'ai voulu tester, mais... Qu'est ce donc que repere? Une variable? Un Contrôle? si oui, lequel?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim i#
        For i = 0 To UBound(colleft)
            If X > colleft(i) Then repere.Left = ListBox1.Left + colleft(i): repere.Width = colwidth(i): actiVcoL = i
        Next
        repere.Caption = "Colonne " & actiVcoL
    Décris ton Userform parce que sinon ça va pas le faire...
    Merci.

    Et il n'y a aucun intérêt à déclarer i As Double... Un réflexe peut être
    Cordialement,
    Franck

  9. #29
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour franck
    oui c'est vrai autant pour moi
    repere est un control label qui je trouve juste au dessus de la listbox
    qui se déplace au niveau de la colonne sélectionnée et sa captions te dis dans quelle colonne tu est

    je l'ai un peu ameliorer question visuel
    j'a rajouté un label(vert) qui indique visuellement la colonne ou se trouve le curseur de la souris au move sur la listbox
    au clik le label rouje(repere) se place

    de façon a quand tu click et que tu bouje le curseur en lâchant la souris la colonne sélectionnée reperée par le label rouje reste la colonne active

    conclusion quand tu tape sur ton clavier c'est la colonne en rouge et listindex qui est modifiée

    met ta listbox et tes deux labels comme suit dans le userform

    le label rouge s'appelle "repere" et le label vert s'appelle "reperemove"
    le reste c'est le activate de l'userform qui le fait
    Nom : Capture.JPG
Affichages : 291
Taille : 195,7 Ko
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Const widthcolonne = "50 pt;100 pt;120 pt;60 pt;80 pt"
    ' donc pour les left colonnes c'est  0,50,150,250,310
    Dim colwidth
    Dim actiVcoL
    Dim colleft()
    Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
       'If reperemove.Left <> repere.Left Then KeyCode = 0
    Dim Mot$
        With ListBox1
            Select Case KeyCode
            Case 8
                KeyCode = 0
                Mot = .List(.ListIndex, actiVcoL): .List(.ListIndex, actiVcoL) = Mid(Mot, 1, Len(Mot) - 1)
            Case 9, 39
                KeyCode = 0
                If actiVcoL = 4 Then Exit Sub
                actiVcoL = actiVcoL + 1: repere.Left = .Left + colleft(actiVcoL): repere.Width = colwidth(actiVcoL)
             reperemove.Left = .Left + colleft(actiVcoL): reperemove.Width = colwidth(actiVcoL)
            Case 37
     
             KeyCode = 0
                If actiVcoL = 0 Then Exit Sub
                  actiVcoL = actiVcoL - 1: repere.Left = .Left + colleft(actiVcoL): repere.Width = colwidth(actiVcoL)
             reperemove.Left = .Left + colleft(actiVcoL): reperemove.Width = colwidth(actiVcoL)
     
            Case 13
                KeyCode = 0: .AddItem: .Height = IIf(.ListCount * (.Font.Size * 1.25) > 205, 205, .Height + plusHligne)
                .ListIndex = .ListCount - 1
            End Select
        End With
    End Sub
    Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        'If reperemove.Left <> repere.Left Then KeyAscii = 0
    With ListBox1
            .List(.ListIndex, actiVcoL) = .List(.ListIndex, actiVcoL) & Chr(KeyAscii)
        End With
    End Sub
    Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
      Dim i#
        For i = 0 To UBound(colleft)
            If x > colleft(i) Then repere.Left = ListBox1.Left + colleft(i): repere.Width = colwidth(i): actiVcoL = i
        Next
        repere.Caption = "Colonne " & actiVcoL
     End Sub
    Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
     Dim i#
        For i = 0 To UBound(colleft)
            If x > colleft(i) Then reperemove.Left = ListBox1.Left + colleft(i): reperemove.Width = colwidth(i): actiVcoL = IIf(reperemove.Left = repere.Left, i, actiVcoL)
        Next
    End Sub
    Private Sub UserForm_Activate()
        Dim i#, x#
        colwidth = Split(Replace(widthcolonne, " pt", ""), ";")    ' tableau des largeur des colonnes de la listbox
        ReDim colleft(UBound(colwidth)): colleft(0) = 0
        For i = 1 To UBound(colwidth): x = x + Val(colwidth(i - 1)): colleft(i) = x: Next    ' memorisation des left colonnes pour le guide rouge
        With ListBox1: .ColumnCount = 5: .AddItem: .ColumnWidths = widthcolonne: plusHligne = .Font.Size * 1.25: End With
    With repere: .Left = ListBox1.Left: .Width = colwidth(0): End With
    With reperemove: .Left = ListBox1.Left + 1: .Width = colwidth(0): End With
    ListBox1.ListIndex = 0: actiVcoL = 0
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #30
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Si tu veux demander des saisies successives dans des TextBox pour ensuite stocker ces valeurs dans une feuille Excel, pas besoin de dizaines de TextBox, 5 ou 6 puis une fois les saisies réalisées dans ces deniers, appuis sur la touche Entrée (voir proc évènementielle KeyPress). Les valeurs seront stockées dans la feuille à la suite des précédentes et les TextBox seront vidés pour une nouvelle série de saisies

  11. #31
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    salut theze
    j'utilise même pas de textbox dans mon délire "listbox writable"
    juste une listbox
    je suis en train de faire la meme chose avec un listview le principe est le même mais la mise en œuvre est légèrement plus complexe pour les repérage (because le X/Y ) de la position est donné en pixels et plein de petites nuances qui font que c'est un peu diffèrent
    teste le dernier model que j'ai posté c'est rigolo
    Nom : demo12.gif
Affichages : 273
Taille : 110,0 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #32
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    j'ai même encore un idée encre plus farfelu un textbox multi ligne et c'est tout
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #33
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Patrick,

    Je n'ai pas encore eu le temps de tester en long, large et travers ta listbox, mais...
    1- je trouve l'idée intéressante, vraiment!
    2- juste à la lecture du code plusieurs choses me gênent :
    - .Font.Size * 1.25 ==> NON !!!**** Noooooooooonnnn! Il me semble que nous en avions déjà causé dans une vieille discussion...
    - 205 ==> Pas de valeur en "dur" dans le code. A remplacer par une constante en entête de module...
    - .ColumnCount = 5 ==> ok, ça c'est pour l'exercice du jour. Mais à remplacer également.
    En gros, supprime tes valeurs en dur dans le code et ce sera déjà bien mieux.

    Ensuite, pour le reste, il te faudra attendre que je (et d'autres également) puisse tester davantage.

    **** Chaque police à ses caractéristiques "graphiques". Tu ne peux plus, avec ton niveau, te contenter de si peu.
    Si tu veux, un ami commun a déjà implémenté le calcul des dimensions graphiques (hauteurs et largeurs en dynamique) des polices.
    Je peux te passer le lien si tu le souhaites, mais il me semble te l'avoir déjà envoyé.

    Bonne fin de dimanche, profitez tous de vos familles, hein? Internet n'est pas tout...

    Des bisous
    Cordialement,
    Franck

  14. #34
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    j'ai même encore un idée encre plus farfelu un textbox multi ligne et c'est tout
    NON!!! Nooooonnnnn!!!
    Reste sur ton idée de ListBox.
    S'il te plait.
    Avec ce contrôle, tu peux gérer bien plus facilement le multicolonne et bien d'autres aspects.


    Stp, comme dirais Jacques, ne t'éparpille pas.
    Tu peux réellement obtenir un bon résultat en creusant davantage ta listbox. Oublie le reste.................
    Cordialement,
    Franck

  15. #35
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oui pour le font.size avec l'histoire du label pré formaté(idée de jacques)je ne l'ai pas fait
    l'important pour moi était de démontrer que l'on pouvait rendre une listbox en quelque sorte "writable" de même qu'avec une listview d'ailleurs sous le même principe moyennant quelque petite différence de code

    tu la veux avec le label de jacques

    je voulais pas ajouter un control supplémentaire mais si tu y tiens oui je peu le faire
    ca pourrait même être aussi un limiteur de longueur de text
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #36
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    je voulais pas ajouter un control supplémentaire
    Des labels, tu en as déjà 2...
    Suffit qu'ils aient la même police que la listbox non?

    Une ListBox modifiable serait un réel atout pour remplacer le contrôle ListView qui est et restera un contrôle non "transportable".
    Par conséquent, tu développes actuellement un outil réellement utile!

    Je vais me contredire, mais, in fine (pas maintenant, tu ne fais que développer ton idée), il faudra utiliser un module de classe "contrôle".
    Je te laisse donc entrevoir le boulot qu'il reste à faire AVANT de passer tout ceci dans une classe.

    ça pourrait même être aussi un limiteur de longueur de text
    Non. Tu t'éparpilles à nouveau!
    Pense à l'utilisation que chacun fait d'une listbox, comme elle a été conçue.
    Cordialement,
    Franck

  17. #37
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    voila font.size*1.25 éliminé plusHligne est maintenant déterminé par le label rouge provisoirement mis en autosize dans le activate


    changer le activate pour celui ci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_Activate()
        Dim i#, x#
        colwidth = Split(Replace(widthcolonne, " pt", ""), ";")    ' tableau des largeur des colonnes de la listbox
        ReDim colleft(UBound(colwidth)): colleft(0) = 0
        For i = 1 To UBound(colwidth): x = x + Val(colwidth(i - 1)): colleft(i) = x: Next    ' memorisation des left colonnes pour le guide rouge
        With ListBox1: .ColumnCount = 5: .AddItem: .ColumnWidths = widthcolonne:  End With
    With repere: .Caption = "A": .Left = ListBox1.Left: .Font.Bold = ListBox1.Font.Bold: .Font.Name = ListBox1.Font.Name: .Font.Size = ListBox1.Font.Size: .BorderStyle = 0: .AutoSize = True: plusHligne = .Height: .AutoSize = False: .Width = colwidth(0): .Font.Bold = True: End With
    With reperemove: .Left = ListBox1.Left : .Width = colwidth(0): End With
    ListBox1.ListIndex = 0:: actiVcoL = 0
    'With sizeur: .Caption = "A": .Font.Name = ListBox1.Font.Name: .Font.Size = ListBox1.Font.Size: .BorderStyle = 0: .AutoSize = True: plusHligne = .Height: End With
    debug.print plusHligne
    End Sub
    Nom : demo12.gif
Affichages : 752
Taille : 163,8 Ko

    PS : j'oubliais
    mettre .MatchEntry = 2 dans le with listbox1 dans le activâtes ca évite les sursaut de ligne quand on tape quelque chose qui commence par les même lettre qu'un item déjà existant

    ca convient mieux Franck

    edit:
    je connaissait cette contribution de ucfoutu sur codes source
    je l'utilise en parallèle a la contribution de harkam 46 et son module GDIplus dans certains de mes vieux fichiers

    oui c'est tout a fait ca ,avec les mises a jour +les new versions d'excel je suis étonné qu'il n'y est pas d'object ou fonctions qui face ce boulot et que l'on soit obligé de carabiné les api a tout va

    j'en avais fait un object (dll) avec vb6 je le trouve plus j'ai formaté X fois depuis le temps peu être est il perdu

    quand tu aura testé dis moi ce qu'il manque selon toi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #38
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Tu auras une réponse plus précise demain.
    Il y a des petites choses qui me gênent, notamment le label vert...
    Si tu souhaites vraiment (parce que tu penses que c'est important) un repère de colonne, il conviendrait mieux, à mon avis, de placer un label par colonne qui servirait alors d'entête.
    Sinon, je ne vois pas l'intérêt...
    Tes colonnes et lignes sont censées être remplies au fur et à mesure. Donc le "repérage" me semble inutile.
    Je sais que tu aimes ça (cf discussion sur une combobox colorée) c'est pourquoi je te fais cette suggestion d'entêtes (qui peut, éventuellement, si ça te fais plaisir, changer de couleur)...

    Bien vu le MatchEntry. Cela prouve également qu'il te faut encore pousser tes tests.

    Je te ferais un retour dès que possible en tout cas.

    Bonne soirée, et, surtout, ne t'emballe pas, on a le temps!
    A++
    Amicalement,
    Franck


    EDIT :
    J'ai limité à 14 lignes
    ...Pourquoi?
    Ou alors, en constante, ou, si l'on pense module de classe, en paramètre d'une fonction appelée...
    Cordialement,
    Franck

  19. #39
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    tres bonne idée les labels colonne (accessoirement couleur différente)

    mais attention la listbox n'a pas de gridline si les label ne changent pas il est difficile visuellement de se situer quand on est sur la 15 eme ligne par exemple
    peut être le changement de bordure couleur alors car si il y a pas de mouvement couleur ou autre on a pas de repère et pour peu que l'on soit a 1 point d'une colonne on tape a coté tandis que le move t'offre un visuel sur l'index de colonne avec le move et quand tu est satisfait de ce que tu vois tu clique et le label rouge prend sa colonne

    je vais voir si je peut le faire évolué dans ce sens (un label par colonne)

    après dans la classe ils seront dynamique bien évidement en tout point (création et paramétrage)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #40
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    c'est bon j'ai maintenant une listebox writable cel par cel avec les label en header

    il change de couleur au mouse move (orange) au déplacement de la souris

    il devienne rouge quand je click sur une cells de la listbox

    il servent aussi pour les titres des entêtes

    j'ai du ressortir ma méthode rollover memo par tag que j'utilise dans quasi toutes mes classes controls

    mais j'ouvre une discussion car sinon le demandeur va être perdu si ce n'est pas déjà le cas

    rendez vous dans ma discussion
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. UserForm, TextBox & Controle de saisie
    Par wipMan dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 26/06/2013, 11h35
  2. [XL-2010] userform multipage objet
    Par pilounet54 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/08/2012, 08h21
  3. [XL-2010] blocage du userform textbox
    Par tompom3108 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/04/2012, 15h56
  4. userform --> textbox valeur par défaut changeante
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/03/2008, 09h21
  5. [VBA-E] userform TextBox
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/03/2006, 09h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo