Userform et selection manuel de cellules

bdx-77

XLDnaute Junior
Bonsoir !

Je ne sais pas trop si je m'exprime bien dans mon titre, mais j'expose mon histoire.

J'ai un tableau, un bouton me permet de lancer une sorte de boite à outils (userform), la, il y a (entre autre) 3 boutons: btn_vert/btn_jaune/btn_rouge.

J'aimerai, quand la fenêtre est ouverte, pouvoir selectionner un cellule, et cliquer sur l'un des boutons. Actuellement, je ne peux pas changer de cellule si je ne ferme pas l'userform.

Est-ce possible de "libéré" les cellules? ou dois-je m'y prendre autrement, si oui, comment?

Bonne soirée, bonne nuit,

Cordialement,
Vincent

Ps: comment s'appelle le nom anglais pour mettre plusieurs ligne dans une zone de texte? en gros qu'il soit possible de faire "entrer"
 

alex67800

XLDnaute Impliqué
Re : Userform et selection manuel de cellules

Bonsoir Vincent,
Tu vas dans l'onglet propriété de ton Usf et tu met showmodal=False
Un extrait de ton fichier nous permettrais de mieux comprendre tes attentes, et quels sont les focntions de tes boutons (sûrement des couleurs!).

A te lire
Edit: pour la deuxième partie, il faut faire un retour à la ligne avec & chr(10) &
 

bdx-77

XLDnaute Junior
Re : Userform et selection manuel de cellules

Bonjour (a 1h50, je dis bonjour),

J'ai résolu mes problèmes, enfin, ton astuce pour la userform, niquel ! et pour la zone en plusieurs ligne, aussi !!

Maintenant, il faut que je reconfigure les zones de texte.

Merci à toi, c'est tout con, mais 'faut le savoir...

Vincent

Je tiens au courant si j'ai des questions... c'est très réactif sur ce forum, et les réponses sont niquel ! merci encore !
 

bdx-77

XLDnaute Junior
Re : Userform et selection manuel de cellules

Désolé pour le doublon, mais j'ai encore un petit problème:

J'ai 3 boutons, je n'en mettrais qu'un:
Code:
Private Sub btn_vert_Click()
    With Selection.Interior
        .ColorIndex = 4
        .Pattern = xlSolid
    End With
    Selection.Font.ColorIndex = 4
    Selection.FormulaR1C1 = "3"
End Sub

Et ce code, pour le griser:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("F9:I12")) Is Nothing Then
        btn_vert.Enabled = True
    Else
        btn_vert.Enabled = False
    End If
End Sub

Le problème, c'est que quand le bouton est dans la UserForm, ca ne fonctionne pas, le griser, mais quand c'est dans la page, ca fonctionne...

Merci
 

alex67800

XLDnaute Impliqué
Re : Userform et selection manuel de cellules

Bonjour Vincent,
Comme je te le disais un petit fichier serait intéressant pour une meilleur compréhension.
Si je saisie tu voudrais que ton bouton soit actif uniquement dans la plage "F9:I12", mais je ne vois pas du tout à quoi ils servent.
Donc ton fichier pour faire des tests serait bien. Sans données confidentielles biensûr!

A te lire.
Selection.FormulaR1C1 = "3"
Tu peux la remplacer par Selection.value= "3" ne s'agissant pas d'une formule.

Peut-être comme ceci:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With UserForm1 'mettre le nom de ton usf
If Not Intersect(Target, Range("F9:I12")) Is Nothing Then
        .btn_vert.Enabled = True
    Else
        .btn_vert.Enabled = False
    End If
    End With

End Sub

Si je saisie un peu ton usf est tout le temps visible, quel intéret si il ni a que 3 boutons, dans ce cas il sont tout aussi bien sur ta feuille?

De plus si tu ne met pas de motif dans tes cellule pas la peine de préciser .Pattern= xlSolid

un simple Selection.Interior.ColorIndex = 4 devrait suffir!!

A te lire!


Edit: enfin si je vois pour les boutons, ils mettent une couleur de fond, de texte et une valeur arfff, suis à la masse lol
 
Dernière édition:

bdx-77

XLDnaute Junior
Re : Userform et selection manuel de cellules

Bonjour,

Merci de t'intéresser à mon problème.
Je n'envoie pas de fichier, parce que j'apprends sur le tas, il y a surement des choses inutiles, des choses mal placée etc... et sur d'autre forum, ils critiquaient plus qu'ils n'aidaient...

Mais je fais une exception...

Le fichier est trop lourd... je peux te l'envoyez comment??

Voila mon fichier, en cliquant sur le bouton "édition", ça ouvre le userform, où les boutons doivent être griser.
J'en profite.
Comme tu peux le voir, il y a une page "Plan d'action", j'aimerais faire un tri: les priorité 1 en premier, puis 2, Puis 3, comment je peux m'y prendre?
Ensuite, B19 est-il possible de fusionner les cellules comme ça automatiquement?

Merci d'avance.
 

alex67800

XLDnaute Impliqué
Re : Userform et selection manuel de cellules

Bonjour Vincent,
n'est aucun soucis sur ce forum nous ne critiquons pas, les meilleurs xldnautes conseils les débutants, dont je fait encore partie lol.
Pour ton fichier essai de le zipper, et si il dépasse toujours 48ko, tu peux passer par le site cjoint.com qui accepte jusqu'à 500ko puis mettre le lien sur le forum.

Ne garde que quelques lignes, enlève toutes données inutiles et personnelles. Tu auras d'avantages de conseils avec un fichier! Cela nous permet de faire des tests, puis t'aider à faire si tu le souhaite les modifs toi-même pas à pas.

Il n'est pas évident de trouver des solutions à l'aveuglette.

Comme tu peux le voir, il y a une page "Plan d'action", j'aimerais faire un tri: les priorité 1 en premier, puis 2, Puis 3, comment je peux m'y prendre?
Cela est possible via filtre automatique tout simplement! Sinon si tu te balades sur le forum via l'outil recherche tu trouveras bcp de sujet traitant des mêmes sujets!
Comme ici par exemple:
https://www.excel-downloads.com/threads/trier-des-colonnes-a-laide-de-vba.109384/

A te lire.
 

bdx-77

XLDnaute Junior
Re : Userform et selection manuel de cellules

Bonjour,

Je ne comprends même pas pourquoi je n'ai pas penser a le zipper... :D
Donc le voilà en fichier joint.

Concernant le filtre automatique, je vais au renseignement de suite...

Vincent
 

Pièces jointes

  • fiche document unique V0.9b.zip
    43.3 KB · Affichages: 671

alex67800

XLDnaute Impliqué
Re : Userform et selection manuel de cellules

Bonjour Vincent,
Quel version excel as-tu?:confused:
Car imposible de trouver un fichier que je puisse exploiter!:eek:
Pour info sur cette partie du forum nous sommes en version 2003 et antérieur, je te soupçonne d'être en version 2007.
Dans ce cas enregistre ton fichier excel en version 2003.;)
Désolé.

Edit:
Ensuite, B19 est-il possible de fusionner les cellules comme ça automatiquement?
Sinon fait à l'arrache avec l'enregistreur de macro:
Code:
Sub test_fusion()
'
'
    Range("B19:C19").Select
    With Selection '[COLOR="Green"]'la partie with est facultative[/COLOR]
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge

A intégrer dans un module que tu appel via un bouton, à moins qu'un évènement doit le faire du type (à tester...):
Code:
If Range ("B19")>0 then
Range("B19:C19").Select
Selection.Merge
Else: Exit Sub
End If
Sinon une solution de tri 3 colonnes trouvé ici (à adapter à ton cas):
https://www.excel-downloads.com/threads/trier-4-colonnes-help.104814/
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("G1:I1000").Select
Selection.Sort _
Key1:=Range("G:G"), Order1:=xlAscending, _
Key2:=Range("H:H"), Order2:=xlAscending, _
Key3:=Range("I:I"), Order3:=xlAscending, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End Sub
Merci à Rafmix



A te lire; et bonne fête et si nous ne nous croisons plus avant l'année prochaine;)
 
Dernière édition:

bdx-77

XLDnaute Junior
Re : Userform et selection manuel de cellules

Bonjour,

Oui je suis en 2007... mais de toute façon, pour ce document, j'vais être obliger de le passer en 2003... si je veux le distribuer... mais pour l'instant, je n'ai pas le fichier sous la main...

Pour ce qui est de fusionner les cellules, le problème, c'est que je ne connais pas a l'avance, le nombre de ligne qu'il faudra fusionner.

Merci et bonne année à toi aussi ! je transmet la version 2003 dès que possible.

Cordialement,
Vincent

EDIT: Envoie du fichier sous 2003
 

Pièces jointes

  • fiche document unique V0.9b_2003.zip
    31.5 KB · Affichages: 326
Dernière édition:

alex67800

XLDnaute Impliqué
Re : Userform et selection manuel de cellules

Bonjour Vincent et Bonne Année 2009,
Alors j'ai un peu planché sur ton problème.
Ci après un code pour trier automatiquement. Attention pour le tri les cellules fusionnées ne doivent plus l'être, j'ai alors ajourter en colonne A une valeur 1 à 3 pour les priorités (il te suffit de réduire la largeur pour masquer les valeurs).
Dans le code de ta feuille plan d'action
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A17:J200").Select
Application.DisplayAlerts = False
[COLOR="red"]Selection.UnMerge[/COLOR]
Selection.Sort _
Key1:=Range("A:A"), Order1:=xlAscending, _
Key2:=Range("B:B"), Order2:=xlAscending, _
Key3:=Range("C:C"), Order3:=xlAscending, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A17").Select
Application.DisplayAlerts = True

[COLOR="Red"]Macro2[/COLOR]
End Sub

Puis dans un module (ce code que j'ai dégoté sur un aitre forum, merci à gbinform l'auteur):
Code:
Sub Macro2()
Dim l As Long       ' ligne
Dim d As Long       ' doubles
Dim c As Integer    ' colonne
Const minl = 17      ' début ligne
Const maxl = 200      ' fin ligne
Const minc = 2      ' début colonne
Const maxc = 2      ' fin colonne
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For c = minc To maxc
    For l = minl To maxl
        For d = l + 1 To maxl
            If (Cells(l, c) <> Cells(d, c)) Then Exit For
        Next d
        If d > l + 1 Then
            With Cells(l, c).Resize(d - l, 1)
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .WrapText = False
                .Orientation = 90
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = True
            End With
        End If
    Next l
Next c
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Mon seul soucis est que quand je dé-fusionnes les cellules seule la première cellule garde sa valeur, donc la macro2 ne trouve rien à fusionner.
Utiliser séparément les deux fonctionnent. Je dois encore plencher pour remettre une valeur une fois défusionner.
A+
 

alex67800

XLDnaute Impliqué
Re : Userform et selection manuel de cellules

Re,
Pour griser tes boutons il faut mettre le code dans la feuille et non dans l'userform2
de telle manière:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With UserForm2
    If Not Intersect(Target, Range("F8:I11")) Is Nothing Then
        .btn_jaune.Enabled = True
        .btn_rouge.Enabled = True
        .btn_vert.Enabled = True
        effacer.Enabled = True
    Else
        .btn_jaune.Enabled = False
        .btn_rouge.Enabled = False
        .btn_vert.Enabled = False
        effacer.Enabled = False
    End If
    End With
End Sub
 

bdx-77

XLDnaute Junior
Re : Userform et selection manuel de cellules

Bonjour, et de même, bonne année 2009 !

Merci pour les codes, j'ai bien réussi pour griser les boutons, mais si je clic sur "edition", sans se déplacer, les bouton ne sont pas griser... mais ce n'est que chipoter... merci !

Pour ce qui est du tri, j'arrive a mettre macro2, mais pour le reste... rien qui fonctionne :D J'arrive pas a faire fonctionner !!
Je cherche...

Bonne fin d'aprem,
Vincent.
 

alex67800

XLDnaute Impliqué
Re : Userform et selection manuel de cellules

Bonjour,
Pour que tes boutons soit griser dès l'ouverture de l'usf il faut aller dans le code de ton usf et mettre ceci:
Code:
Private Sub UserForm_Initialize()
btn_vert.Enabled = False
btn_jaune.Enabled = False
btn_rouge.Enabled = False
End Sub
Comme cela ils seront bloquer à l'ouverture.

Pour le tri il faut mettre une valeur en colonne A....

A+
 

alex67800

XLDnaute Impliqué
Re : Userform et selection manuel de cellules

Re,
Ci-joint un essai avec des boutons, c'est plus simple

A+


Edit: Mise à jour du fichier joint
 

Pièces jointes

  • Copie de fiche document unique V0.9b_2003 (version 1).zip
    46.3 KB · Affichages: 405
  • Copie de fiche document unique V0.9b_2003 (version 1).zip
    46.3 KB · Affichages: 401
  • Copie de fiche document unique V0.9b_2003 (version 1).zip
    46.3 KB · Affichages: 446
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS