Forums XLPages

Tous les messages (Guy)

« 1 ... 4 5 6 7 8 9 10 ... 47 »
Re: menus en cascade
#61
Accro XLPages

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.


Tu remarqueras que les formules en colonnes F et G permettent de formater le tout sans effort.
Pour modifier ou ajouter des éléments il te suffira de modifier ou d’ajouter des éléments en colonnes B:D.
La colonne E est vide à dessein et il est important qu’elle le reste.


Si tu désires ajouter un niveau, simplement insérer une colonne à partir de la colonne E et les formules en F:G s’ajusteront.
Quoi de mieux que de laisser Excel bidouiller ses formules tout seul.

 

Marche à suivre pour consulter l’exemple :
1- Cliquer sur le bouton Lancer la construction du menu en feuille Mise en forme du Menu.
2- Sélectionner la feuille DEVIS PAGE 2  et cliquer avec le bouton droit dans l’une quelconque des cellules B23:B52.
Tu remarqueras que, si tout se passe comme prévu, un clic sur un bouton terminal saisit dans la cellule active le chemin complet du menu cliqué.

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

 

 

Pièce jointe:
zip Menu christ9931 (version 2).zip   [ Taille: 49.72 Ko - Téléchargements: 568 ]
Edité par Guy le 12/07/2014 01:23:30

Hors Ligne
Rapport   Haut 

Re: Ajouter jours à cellule contenant date
#62
Accro XLPages

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

Hors Ligne
Rapport   Haut 

Re: menus en cascade
#63
Accro XLPages

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

C'est bien la ville, y'a aussi, surtout le fjord. 

http://www.sepaq.com/pq/sag/decouvrir/

 

Guy


Hors Ligne
Rapport   Haut 

Re: menus en cascade
#64
Accro XLPages

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


Hors Ligne
Rapport   Haut 

Re: menus en cascade
#65
Accro XLPages

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.
Je ne sais pas si j'erre ou divague mais je te soumets le petit classeur suivant.

 

Tout d'abord précisons les termes :
Tu parles de menu déroulant, ne s'agirait-il pas plutôt de liste déroulante?

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

Pièce jointe:
zip Menu christ9931 (version 1).zip   [ Taille: 34.50 Ko - Téléchargements: 656 ]

Hors Ligne
Rapport   Haut 

Re: Selectionner aléatoirement un nombre de jour X dans 1 mois ?
#66
Accro XLPages

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

Pièce jointe:
xlsm AléaPluie.xlsm   [ Taille: 26.48 Ko - Téléchargements: 488 ]

Hors Ligne
Rapport   Haut 

Re: Macro pour ajouter une feuille et la renommer
#67
Accro XLPages

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

Hors Ligne
Rapport   Haut 

Re: Ajout/suppression d'une macro complémentaire à l'ouverture/fermeture d'un fichier
#68
Accro XLPages

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 :

 

  1. Title - chaîne de caractères
  2. Installed - booléen

 

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

Pièce jointe:
xlsm Complément_Cyval.xlsm   [ Taille: 16.27 Ko - Téléchargements: 549 ]

Hors Ligne
Rapport   Haut 

Re: + de 3 MFC
#69
Accro XLPages

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

Pièce jointe:
xls +_de_3_MFC_Mod3.xls   [ Taille: 53.50 Ko - Téléchargements: 502 ]

Hors Ligne
Rapport   Haut 

Re: + de 3 MFC
#70
Accro XLPages

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
  ' de remise en couleur neutre pour une nouvelle passe.


Cette version porte ce changement.

 

À tester et à lire les commentaires aussi.

 

Cordialement,

 

Guy

Pièce jointe:
xls +_de_3_MFC_Mod2.xls   [ Taille: 57.50 Ko - Téléchargements: 438 ]
Edité par Guy le 10/04/2014 21:07:56

Hors Ligne
Rapport   Haut 

« 1 ... 4 5 6 7 8 9 10 ... 47 »