Ordre alphabétique / Calendrier.

DAVID-44-

XLDnaute Occasionnel
Bonjour, je finalise un classeur pour gérer les stocks. Je voudrais vous remercier de l'aide que vous m'avez apportée pour créer ce projet.

J'ai encore quelques difficultés que je n'arrive pas à résoudre.

La première : je n'arrive pas à placer le calendrier correctement. Quand je clique sur la cellule "DLC" et "PRÉVU LE" j'aimerais que le calendrier s'ouvre à côté de la colonne "FOURNISSEUR" afin de me laisser voir tout le côté droit du tableau.

La deuxième chose : quand j'utilise le bouton avec "la flèche direction haute" pour utiliser la macro afin de faire un tri alphabétique, je souhaiterais si c'est possible, qu'à la fin du tri voir la première ligne (la 9) et non voir la fin du tableau.

Je vous remercie par avance de votre aide.
 

Pièces jointes

  • STOCK.1..xlsm
    159 KB · Affichages: 27

Pounet95

XLDnaute Occasionnel
Bonsoir,
Pour le positionnement du calendrier, il suffit de positionner le curseur dans l'entête et de faire un glisser/déplacer ( en français dans le texte ! )
Sinon, si tu ne veux pas faire comme ça, voir le code modifié qui se situe dans le module de code du calendrier, dans la fonction

Private Function placementRange(Obj As Object)


Claude alias Pounet95

PS : étonné que Patricktoulon n'ai pas vu !!!

Edit : je n'ai pas compris pour le tri :(

VB:
    'option de placement :
    Wx = (Obj.Width / 2) * Z * Px
    Hx = (Obj.Height / 2) * Z * Py
   
    'mettre en commentaire
    'L1 = L1 + (Wx)
    'T1 = T1 + (Hx)
    'Mettre les valeurs gauche ( L1 ) et haut ( T1 ) qui vont bien
    L1 = 200
    T1 = 50
 

patricktoulon

XLDnaute Barbatruc
bonsoir
@Pounet95 j'ai failli pas le voir :p:p

et voila comment on pourri mon calendrier
il est moche de chez moche :p :p :p
bref chez moi la position sur i ou j est bonne par la fonction placementRange

si vous voulez le positionnez avec des coordonnées exemple ici en left 200 pour 50 de top
il faut alors utiliser la fonction shotopleft
VB:
Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    Cancel = True
    If Not Application.Intersect(Target, Range("I9:J440")) Is Nothing Then
        'Target = Calendar.ShowX(Target(1), 2, 0, 1)
        Target = Calendar.ShowTopLeft(200, 50, 1)
    End If
End Sub

ou comme ca (completement a gauche en dessous le ruban)
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    Cancel = True
    If Not Application.Intersect(Target, Range("I9:J440")) Is Nothing Then
        'Target = Calendar.ShowX(Target(1), 2, 0, 1)
        Target = Calendar.ShowTopLeft(0, Application.CommandBars("Ribbon").Height + Application.CommandBars(1).Height, 1)
    End If
End Sub


c'est pourtant pas compliqué tout est expliqué avec exemple en plus :rolleyes:
Capture.JPG



n’empêche que tu l'a rendu très moche
hummm..... y a des roustes qui se perdent :rolleyes:;):p
ho l'horreur le machin on croirait un truc sur mon amstrad pc 6128 le truc vive les années 80/90
burrrrrkkkkkkkk pouuuuuaaaahhhh

demandez à David Aubert pour quelle raison les couleurs du forum ont été choisi ;)
c'est pas pour rien que j'avais choisi ces couleurs :rolleyes:
 
Dernière édition:

Pounet95

XLDnaute Occasionnel
Bonsoir Patrick,
Et pourtant, je n'ai juste touché qu'au 2 lignes mises en commentaire. Mea culpa, je ferai plus :(
Vois plutôt dans l'original du classeur en post#1
Pour ce qui est du look, c'est vrai qu'il y a à redire, mais le principal c'est que ça fonctionne , non ?
Moi c'était aussi Amstrad CPC 464 avec cassettes avec lesquelles tu chargeais un programme en 40 mn et qui plantait au bout de 2mn d'utilisation. Je me souviens du jeu SRAM , j'en rigole encore.

Claude
 

DAVID-44-

XLDnaute Occasionnel
Bonjour Pounet95 et patricktoulon,
Merci beaucoup de votre aide.
Désolé patricktoulon, si ma coloration o_Odu calendrier ne vous plait pas ;) !
Mais bon nos différences font la richesse de notre civilisation :
« Les différences ne sont pas censées séparer, aliéner. Nous sommes justement différents afin de comprendre que nous avons besoin les uns des autres » - Desmond TutuCe lien n'existe plus
En tout cas votre calendrier est vraiment génial. Merci sincèrement. :p

Pour Pounet95
"Edit : je n'ai pas compris pour le tri :( "
En fait quand je fais la trie de A à Z en utilisant le bouton avec "la flèche direction haute" pour utiliser la macro, à la fin du tri je me retrouve à la fin de la feuille alors que j'aimerais me retrouver au début.

Merci de votre aide.
 

Pièces jointes

  • STOCK. 2(3).xlsm
    160.4 KB · Affichages: 10

Pounet95

XLDnaute Occasionnel
Re,
Ajoute la ligne .Cells(deb,1).select


Sub meszones() 'recherche des zones à trier
With Sheets("STOCK")
deb = 8
While .Cells(deb, 2) <> ""


Set zone = .Range(.Cells(deb + 1, 3), .Cells(deb + .Cells(deb, 3).CurrentRegion.Rows.Count - 1, .Cells(deb, 2).CurrentRegion.Columns.Count + 1))
zone.Select
deb = .Cells(deb, 3).CurrentRegion.Rows.Count + 3 + deb
Call trie(zone)
Wend

'Retour début du tableau
.Cells(8, 1).Select


End With
End Sub
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
206

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo