[excel] formulation d'une variable

Résolu/Fermé
MattDF Messages postés 76 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 5 août 2009 - 3 mars 2008 à 09:29
MattDF Messages postés 76 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 5 août 2009 - 6 mars 2008 à 08:51
Bonjour à tous,

Je commence à pouvoir bidouiller sur la macro Excel, mais les variables me posent encore problème. C'est pourquoi je souhaiterai avoir votre avis pour le cas suivant :

J'ai une formule, intégrée à une macro plus grande, que je dois répéter 25 fois, chaque fois pour une valeur différente (de 1 à 25). Voici la formule macro :

'La c'est pour comptabiliser les périodes de 1 mois
Range("Q" & Range("Q65536").End(xlUp).Row + 1).Select
Range("Q2", ActiveCell.Offset(-3, 0)).Select
For Each Cell In Selection
If Cell.Value = 1 And IsEmpty(Cell.Offset(0, 1)) And IsEmpty(Cell.Offset(0, 3)) And IsEmpty(Cell.Offset(0, 4)) Then
total1m = total1m + 1
End If
Next
Range("T" & Range("T65536").End(xlUp).Row + 1).Select
Range("T2", ActiveCell.Offset(-1, 0)).Select
For Each Cell In Selection
If Cell.Value = 1 And IsEmpty(Cell.Offset(0, 1)) Then
total1m = total1m + 1
End If
Next
If total1m > 0 Then
Totalt = Totalt + 1
End If


Il me faut répéter la formule en changeant uniquement les chiffres que j'ai mis en gras (il apparait 7 fois dans ce petit bout de macro), mais j'aimerais ne pas avoir à recopier cette formule 25 fois, d'où le besoin de connaître un peu mieux les variables. Si vous pouviez m'éclairer là dessus, je vous en serait très reconnaissant et vous m'aideriez à progresser en macro. N'hésitez pas à me mettre des explications en chemin, ca ne peut que m'aider à comprendre ce que je fais.

Merci d'avance !
A voir également:

52 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 mars 2008 à 16:37
es-tu sûr qu'il doit y avoir une valeur pour le total pour les périodes de mois et demi ? je ne trouve aucun élément dans le tableau ?
0
MattDF Messages postés 76 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 5 août 2009 67
4 mars 2008 à 16:43
Dans ma macro initiale, c'était demandé sous cette forme (exemple pour 7,5 mois)

'affichage éventuel pour une durée de 7.5 mois
If total7md > 0 Then
ActiveCell.Value = total7md
ActiveCell.Offset(0, 2).Select
ActiveCell.Value = 7.5
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "months"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Tarif"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
    Application.CutCopyMode = False
ActiveCell.Offset(1, -4).Select
End If


Donc les "md" devrait apparaitre avec les "s" et les "m"

Je sens que mon crâne commence à fumer ! :-)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 mars 2008 à 17:01
oui, je suis d'accord avec toi et c'est exactement ce qu'il y dans configMoisDemi ...
le problème ne vient pas de là ... il vient du module ModComptabilise. Je pense que ça vient de la procédure comptePeriodeMoisDemi.

Il n'y a pas de valeur dans le tableau tabTotalmd ...


oups je crois avoir trouvé ... je corrige et je t'envoi le nouveau fichier
0
MattDF Messages postés 76 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 5 août 2009 67
5 mars 2008 à 09:11
Ca marche ! Quel talent ! ^^

Est ce que je peux encore abuser un peu de ton temps ?

Comment faire pour que les mois s'affichent par ordre de taille ? De sorte que, par exemple, les périodes de 2,5 mois s'affichent entre les périodes de 2 et 3 mois (si y'a des périodes de 2 ou 3 mois bien sur... enfin je pense que tu as compris ^^)

Ensuite j'aurais encore une ou deux questions techniques et j'aurais fini. Merci encore ! :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 mars 2008 à 10:32
Bonjour,

Je suis content que tu aies réussi à faire marcher ton zinzin ... :o) ...

Tu n'abuses pas de mon temps, j'aide volontier les personnes dans la mesure de mon temps disponible. Sinon je ne le ferai pas ...

Je pense avoir compris ce que tu veux faire, je suppose que c'est sur la 2ème feuille que tu veux faire ça ...
Ca doit être possible effectivement. Je ne sais pas encore comment, mais il y a surement une solution.
Je vais regarder ça ... en espèrant que tu ne sois pas trop pressée ... si c'est pour hier, je ne peux pas ... je suis sur un truc que je dois rendre pour avant-hier ... lol ...
Je te tiens au courant le plus tôt possible ... disons dans l'après-midi ...

N'hésites pas pour les questions, si je peux y répondre, ça sera avec grand plaisir.

;o)

Polux
0
MattDF Messages postés 76 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 5 août 2009 67
5 mars 2008 à 12:17
Merci beaucoup ! C'est très gentil ! ^^

Je suis aussi sur un autre problème donc je peux attendre sans souci cet après midi.

De manière tout à fait accessoire, est ce que tu connais la commande macro qui permet de connaitre le chemin où se trouve le fichier, mais sans le nom du fichier ?

Cette commande ne m'aide pas comme je le souhaiterai :
Chemin = ActiveWorkbook.FullName


Par exemple si le fichier se trouve à l'endroit

C:Patin/couffin/tintin/fichierExcel.xls

Je souhaiterai connaitre la commande (si elle existe) qui me permet de détecter (et m'en servir) seulement :

C:Patin/couffin/tintin/
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 mars 2008 à 14:22
re,

Oui je sais comment faire ça, mais je suis plutôt à la bourre là et pas trop le temps de chercher ... je vais faire de mon mieux pour te trouver ça au plus tôt ...

;o)

polux
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 mars 2008 à 14:39
rere,

voilà comment trouver le chemin :

Chemin = thisWorkbook.Path


pour vérifier, juste dessous tu mets :

MsgBox Chemin


tu l'effaceras ensuite si c'est ce que tu voulais.

;o)

Polux
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 mars 2008 à 14:56
voilà, je crois que ça doit le faire pour intercaler les mois 1/2 ... jetes un zoeil et dis moi si c'est ce que tu cherches

https://www.cjoint.com/?dfo23H84J0

;o)

polux
0
MattDF Messages postés 76 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 5 août 2009 67
5 mars 2008 à 15:17
T'es trop fort ! ^^

Merci BEAUCOUP !!

Une dernière chose : Pour créer une macro, on fait "insertion" - "module", mais comment tu crées les fenêtres "Code" comme dans ton programme ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 mars 2008 à 15:37
Arrêtes ... je suis pas trop fort ... la programmation c'est mon job ... même si je ne connais pas Excel, je peux me débrouiller pour coder des petites choses.

En fait, c'est quoi une Macro ? juste un code qui permet d'exécuter des tâches. Le terme Macro vient juste du fait que Excel propose une fonctionnalité qui permet de les enregistrer automatiquement, sans même connaitre le langage VBA. Il suffit de faire -> nouvelle Macro et d'exécuter ce que l'on veut faire (ex : recopie automatique de cellule) et de faire
-> terminer Macro. Ce que l'on ne voit pas, c'est qu'un module a été créé dans l'éditeur avec le code VBA associer à la Macro.

On peut également, si l'on a des connaissances en VBA, se faire la Macro par le code. Ce n'est ni plus ni moins ce que j'ai fait. Je n'appelle pas ça des macros, mais des procédures ou des fonctions. Pour créer un module "code", il faut faire pareil : "insertion" -> "module" ... et d'y placer le code qui va bien ... Dans la fenêtre en bas à gauche je renomme le module.

Tu dis : Une dernière chose ... comme c'est dommage ... lol ... il aurait été intéressant de rendre ton zinzin plus fonctionnel ... :o) ... par exemple de mettre un bouton sur ta première feuille pour lancer l'exécution des "macros", en faisant au sorte de n'avoir qu'un seul click à faire. Et ensuite, envisager une sauvegarde automatique sans passer par la boîte de dialogue traditionnelle ... et surement plein d'autres choses ... :o))

Bon courage,

Ca m'a fait vraiment très plaisir de t'aider.

Je reste à ta dispo Okazou ...

;o)

Polux
0
MattDF Messages postés 76 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 5 août 2009 67
6 mars 2008 à 08:51
Je te remercie, mais j'avais déjà trouvé les lignes de code et la présentation par barre des taches pour ces derniers points. Je devrais donc réussir sans trop de problème à les insérer.

Et je ne veux pas pas non plus te monopoliser pour faire fonctionner uniquement mon programme. D'autres ont surement besoin de tes lumières ! Mais je garde en tête ta proposition d'aide pour le prochain programme que je pourrais être amené à faire.

Merci encore ! ^^
0