Re: menus en cascade | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 12-07-2014 00h58
Bonjour christ9931,
Bon, c'est bien beau les vacances mais y'a pas qu'ça! Encore que la petite auberge Le Rustique à Saint-Irénée (http://lerustique.charlevoix.qc.ca/) m'a laissé d'impérissables souvenirs et je ne me suis rien cassé du tout. Suffit! Au boulot.
Ci-joint le brouillon 2 pompeusement nommé version 2 du classeur exemple que je te bricole. Quelques petites choses à prendre en compte absolument.
Il y a ta façon de monter les éléments et il y a ma façon. Tu pourras zieuter la différence en consultant les feuilles liste (ta façon) et Mise en forme Menu (ma façon).
Tout ceci ayant pour but d'envoyer à l'algorithme de construction du menu des éléments digestes et bien apprêtés.
Marche à suivre pour consulter l’exemple : 3- Si tu te trompes dans la manipulation une erreur se produira. Ignore-là et recommence jusqu’à ce que tu aperçoives les contours du montage. En particulier ne laisse aucune ligne vide dans la définition des éléments de menu. Sinon un petit cracboum de rien du tout se produira.
Si, après essais et erreurs, tu trouves la chose convenable nous poursuivrons avec d’autres questions en particulier concernant les notes en feuille liste comme MG.JR001 ou EV.AR002 et ce que tu comptes en faire (j'ai une petite idée là-dessus...).
Cordialement,
Guy
Edité par Guy le 12/07/2014 01:23:30
|
|
|
Re: Ajouter jours à cellule contenant date | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 11-07-2014 22h48
Bonjour alexandreVBA et bienvenu dans le forum,
Effectivement tes cours de VBA auraient dû t'apprendre qu'une procédure (Sub) ne retourne jamais de valeur et non qu'elle ne sont pas idéales pour ce faire.
1- Ton code ne compile pas, tu as sans doute oublié d'insérer la directive Option Explicit en en-tête de module. Là-dessus il faut blâmer Microsoft et personne d'autre : voir dans l'éditeur VBA Menu Outils/Options..., onglet Éditeur et cocher Déclaration des variables obligatoire ce qui ajoutera automatiquement la directive Option Explicit à tout nouveau module; Microsoft laisse par défaut, et c'est un défaut, cette case non cochée (misère). Ensuite compiler le code souvent, très souvent, à l'aide du menu Débogage/Compiler VBAProject.
2- La fonction RETARD ne retourne aucune valeur, elle se contente de modifier le paramètre passé en référence (dateactualisee). Auquel cas une procédure (Sub) aurait tout aussi bien fait l'affaire. Bien que ne retournant jamais quoi que ce soit, on peut parfaitement modifier un paramètre passé en référence à l'intérieur d'un procédure.
3- La variable dateinterval n'est déclarée nulle part, la compilation te l'aurait révélée. Aussi cette variable n'est utilisée qu'à un seul endroit dans DateAdd(dateinterval.Day, jours, dateactualisee.Value). Où donc voudras-tu saisir une valeur pour cette variable?
4- La fonction DateAdd ne supporte aucun paramètre Jours qui n'étant déclaré nulle part prend pour valeur initiale zéro (0) en tant qu'entier (Integer) et dateinterval.Day est inconnu au régiment. Revoir impérativement la syntaxe de la fonction DateAdd dans l'aide (F1).
5- Il est contre-indiqué de ne pas utiliser les constantes symboliques dans le code.
If reponse = 6 devrait se lire If reponse = vbYes et MsgBox("Souhaitez-vous retarder la date de règlement prévue ?", 36, "Prévoir retard") devrait se lire MsgBox("Souhaitez-vous retarder la date de règlement prévue ?",vbYesNo + vbQuestion , "Prévoir retard") C'est plus parlant.
Bref, un petit classeur exemple et quelques autres explications seraient de mise, en particulier la manière utilisée pour lancer cette fonction.
Ceci dit je laisse à d'autres le soin de poursuivre, j'ai d'autres bricoles au fourneau.
Cordialement,
Guy
Edité par Guy le 12/07/2014 01:19:19
|
|
|
Re: menus en cascade | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 08-07-2014 19h47
|
|
|
Re: menus en cascade | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 08-07-2014 16h56
Bonjour christ9931,
Je ne pourrai te répondre correctement qu'à compter de la fin de semaine. Je suis en vacances au Saguenay, très beau coin de pays.
J'y jette donc un œil à mon retour.
Cordialement,
Guy |
|
|
Re: menus en cascade | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 24-06-2014 19h09
Bonjour christ9931,
Ta question m'a rappelé de très vieux souvenirs.
Tout d'abord précisons les termes : Je n'ai pas abordé le problème par construction de listes déroulantes mais plutôt par construction de Menu.
Tu trouveras en feuille Exemple la représentation de l'arborescence d’un menu et sa représentation Racine, Gauche, Droite. Cette représentation devrait être claire dès l’abord.
Tu trouveras en feuille Menu_christ9931 une représentation selon l’arborescence que tu as soumise.
Le code n’est pas commenté, je te livre ce petit classeur comme brouillon, il faudra peaufiner j'en suis sûr.
Jettes-y un œil et si la chose ressemble à ce que tu désires, nous poursuivrons. Restera à assigner une action à chaque bouton terminal entre autres choses.
Cordialement,
Guy |
|
|
Re: Selectionner aléatoirement un nombre de jour X dans 1 mois ? | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 07-06-2014 00h18
Bonjour Sonik355 et bienvenue dans le forum,
J'ai zieuté ta question et je n'ai pas vraiment su quoi faire. Puis je me suis dit qu'un petit classeur exemple serait indiqué et, pourquoi pas, un petit classeur exemple bricolé par mes soins.
Alors voilà.
Affichage des mois de l'année avec total des "1" pour chaque mois. Les mois sont des plages nommées et accessibles à la volée dans la zone nom. Le code est simple et assez correctement commenté.
Plus d'info sur demande réciproquement.
Cordialement,
Guy |
|
|
Re: Macro pour ajouter une feuille et la renommer | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 17-05-2014 16h31
Bonjour Basket,
Tout d'abord le code soumis présente quelques pièges : Sub Macro2() Sheets.Add ' Ajoute bien une feuille mais ne permet pas de la saisir Sheets("Feuil3").Select ' L'utilisation de Select est à proscrire ' et rien n'autorise à penser que la nouvelle ' feuille a un nom d'onglet "Feuil3" Sheets("Feuil3").Name = "Nouvelle feuille" End Sub On pourra choisir l'une ou l'autre des procédures : Public Sub AjouterFeuille() Static I As Long ' Une variable statique garde sa valeur à chaque appel Dim Feuille As Worksheet ' Une référence à la feuille nouvellement créée I = I + 1 ' L'index est augmenté Set Feuille = ThisWorkbook.Worksheets.Add ' La référence est posée Feuille.Name = "Nouvelle feuille " & I ' Le nom d'onglet de la nouvelle feuille est posé. End Sub
Public Sub AjouterFeuilleAvecNom(Nom As String) Dim Feuille As Worksheet On Error GoTo AjouterFeuilleAvecNom_Error Set Feuille = ThisWorkbook.Worksheets.Add ' La référence est posée Feuille.Name = Nom ' Le nom d'onglet de la nouvelle feuille est posé. On Error GoTo 0 Exit Sub AjouterFeuilleAvecNom_Error: Select Case Err.Number Case 1004 If Err.Description Like "*feuille*" Then MsgBox "Une feuille " & Chr(34) & Nom & Chr(34) & " existe déjà." & vbCrLf & _ "Veuillez choisir un nom de feuille unique.", vbInformation, "Ajout de feuille" End If End Select End Sub À tester de ton côté.
Cordialement,
Guy
Edité par Guy le 17/05/2014 17:03:03
|
|
|
Re: Ajout/suppression d'une macro complémentaire à l'ouverture/fermeture d'un fichier | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 10-05-2014 14h43
Bonjour cyval et bienvenue dans le forum,
Les macros complémentaires que j'appelle plus simplement des compléments ont deux propriétés importantes qui permettent de les manipuler par code :
Le classeur joint porte deux procédures mais une seule servira à activer ou désactiver le complément de ton choix.
Pour ce faire il faut récupérer le titre du complément visé, la procédure FouilleComplements() te permettra de le récupérer et c'est ce titre qui sera passé en paramètre dans la procédure InstallerComplement().
Par exemple le nom de fichier du complément calendrier de Didier est "mDF_XLcalendar.xla" mais son titre est "mDF XLcalendar " et c'est ce titre qui doit être utilisé.
L'objet ThisWorkbook porte deux événements : Private Sub Workbook_Open() ' InstallerComplement "Titre du complément que tu veux activer", True End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' InstallerComplement "Titre du complément que tu veux déasactiver", False End Sub Il te faudra remplacer "Titre du complément que tu veux activer/déasactiver" par le titre du complément souhaité et dé-commenter la ligne de code de chacune des procédures.
Voilà et cordialement,
Guy |
|
|
Re: + de 3 MFC | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 10-04-2014 21h40
Re-bonjour Bordelais,
Petite erreur de ma part dans le code, voilà qui corrigera la chose je crois.
Cordialement,
Guy |
|
|
Re: + de 3 MFC | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 10-04-2014 19h20
Bonjour Bordelais,
Tel qu'indiqué dans un commentaire du code :
' Suite au transfert de la couleur il faudra prévoir un mécanisme
À tester et à lire les commentaires aussi.
Cordialement,
Guy
Edité par Guy le 10/04/2014 21:07:56
|
|
|