macros & Co

beaf77

XLDnaute Junior
Bonjour le forum,

Je viens vers vous car mes capacités sont limitées et là face à mes ambitions, je ne peux que faire appel à vous.

Il s’agit d’un planning basique sur lequel je souhaiterai automatiser certaines choses.

2 problèmes à résoudre sur ce fichier :
1) Lorsque je valide dans la colonne E « réalisé » à l’aide de la liste déroulante ( X ), je voudrai qu’automatiquement cela barre le texte associé en cellule C pour signifier que ce projet est validé et réalisé.

2) je souhaiterai avec des macros et des boutons, sur une feuille à part créer un menu sur lequel j’aurai 12 boutons associés à chacun des mois de l’année et dès que l’on clique sur le mois de janvier, il nous amène à la partie du planning correspondant à janvier et ainsi de suite : J’ai réussi à le faire pour un mois mais quand je fais le suivant, il fait la même chose que le précédent (la macro enregistrée ne conserve pas la position exacte sur la feuille).

J’espere que mes explications sont assez claires et si quelqu’un a la solution à mes problèmes, ce serait formidable.
En vous remerciant par avance, cordialement
 

beaf77

XLDnaute Junior
Ci-joint le fichier,
ce sera beaucoup mieux :whistle: [file name=AgendaRH2006.zip size=9561]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/AgendaRH2006.zip[/file]
 

Pièces jointes

  • AgendaRH2006.zip
    9.3 KB · Affichages: 17

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Beat, bonjour le forum,

J'ai un peu modifié ton fichier en ce sens que j'ai supprimé le partage de l'onglet Agenda 2006 en deux fenêtres. Il n'y en a plus qu'une mais avec les volets figés en A5.
Pour revenir au menu j'ai rajouté uhne macro événementielle sur le double-clic dans la plage des mois (A5:A160).

Dis-moi si ça te convient.
[file name=Beat.zip size=16272]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Beat.zip[/file]
 

Pièces jointes

  • Beat.zip
    15.9 KB · Affichages: 14

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Beat, bonjour le forum,

Damned ! ce n'est pourtant que le tien modifié. Je réesaie et au cas où ça ne marche pas voici les macros utilisées :


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range('A5:A166')) Is Nothing Then
Cancel = True 'évite le mode étirion lié au double clic
Sheets('Menu').Activate
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range('E5:E166')) Is Nothing Then
If Target.Value = 'X' Then Target.Offset(0, -1).Font.Strikethrough = True
If Target.Value = '' Then Target.Offset(0, -1).Font.Strikethrough = False
End If
End Sub

tu transposeras pour les autres mois...

Sub Janvier()
Sheets('Agenda 2006').Select
Range('C5').Select
ActiveWindow.ScrollRow = 5
End Sub
[file name=agenda_20060215145958.zip size=16272]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/agenda_20060215145958.zip[/file]

Message édité par: Robert, à: 15/02/2006 15:00
 

Pièces jointes

  • agenda_20060215145958.zip
    15.9 KB · Affichages: 12

beaf77

XLDnaute Junior
merci robert

je ne peux tjs pas ouvrir ton fichier
au moment de dezipper il me dit que ton fichier n'est pas valide.
Bref je vais m'arranger avec ce que tu m'as transcris dans ton message precedent.
Je connais rien au VBA mais je crois que je vais devoir m'y mettre.
Merci encore du coup de main, je regarde ce que tu m'as donné et je te tiens au courant
bonne APM
Cdt
 

Creepy

XLDnaute Accro
Hello le Forum, Robert, Beaf,

Ci joint mon exemple à moi.

Peut être passera-t'il mieux ?

Par contre Beaf excuse moi mais j'ai viré ton jaune abominable qui me donnait la migraine !

@+

Creepy [file name=Agenda_RH_2006.zip size=17817]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Agenda_RH_2006.zip[/file]
 

Pièces jointes

  • Agenda_RH_2006.zip
    17.4 KB · Affichages: 14

beaf77

XLDnaute Junior
Robert,

Pour le problème du fichier a ouvrir, cela doit venir de mon pc au boulot mais je ne peux regler ce pb qui est recurent parce que ce n'est pas la première fois que cela m'arrive.
Bref...

Pour ce qui est de mon problème 1 (macro dirigé vers la cellule spécifique du mois), ta formule en vba marche tres tres bien robert et c ok pour moi.
Maintenant pour mieux comprendre tout ca peux tu me decrypter ce que ca signifie

Sub Janvier() je comprends
Sheets('Agenda 2006').Select je comprends
Range('C5').Select je comprends
ActiveWindow.ScrollRow = 5 je comprends pas l'interet de cette ligne mais il faut la mettre pour que ca marche
tu pourrais me la traduire pour mon interet personnel.

Sinon je vais maintenant m'attaquer à l'autre pb avec les formules que tu m'as données.
Si j'ai bien compris, tu me donnes 2 possibilités pour le resoudre?
faut les mettre dans une macro?

Encore merci
End Sub
 

beaf77

XLDnaute Junior
Marche tjs pas pour ton fichier creepy :(

Il me marque le message suivant:

Ne peut ouvrir le fichier :il ne semble pas etre un ZIP valide
Si ce fichier appartient à une sauvegard, insérez le dernier disque de l'ensemble et reessayez.

Bizar? :eek:

bon sinon la formule VBA pour rayer la cellule C quand E affiche X, je la saisie pas trop et je ne vois pas trop ou la placer.

Merci messieurs

PS: moi j'aime bien le jaune meme si j'admet que celui ci est un peu flashy B)
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Beat, Creepy, bonjour le forum,

ActiveWindow.ScrollRow = 5 signifie que la ligne 5 va être affichée en tout début de la fenêtre active. Comme j'ai figé les volets, elle apparaîtra juste en dessous des titres...

Je ne comprends pas bien quand tu parles de formules... Je t'ai donné deux codes qui sont des macros événementielles. L'une se déclenche à chaque changement dans la colonne E :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range('E5:E166')) Is Nothing Then
If Target.Value = 'X' Then Target.Offset(0, -1).Font.Strikethrough = True
If Target.Value = '' Then Target.Offset(0, -1).Font.Strikethrough = False
End If
End Sub
Elle permet de barrer automatiquement le texte.


L'autre se déclenche au double-clic dans la colonne A :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range('A5:A166')) Is Nothing Then
Cancel = True 'évite le mode étirion lié au double clic
Sheets('Menu').Activate
End If
End Sub

Elle permet de revenir à l'onglet Menu.


Tu dois placer ces deux codes dans le composant Feuil2(Agenda 2006) de VBE.


Édition :

Au pire, car ce n'est pas dans l'éthique de la charte, donne-moi une adresse mail à laquelle je puisse t'envoyer le fichier non zippé...


Message édité par: Robert, à: 15/02/2006 17:04
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Ooops il y a une erreur dans le code. Corrige-la car pour l'instant il barre de texte de la colonne D et non pas C.

If Target.Value = 'X' Then Target.Offset(0,
-2).Font.Strikethrough = True
If Target.Value = '' Then Target.Offset(0,
-2).Font.Strikethrough = False
 

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87