|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Bonsoir,
Je travaille sur des fichiers de masse salariale qui nécessitent d'être automatisés aux vues du gain de temps procuré grâce à une macro (si tant est qu'elle fonctionne de bout en bout Seulement, je bute. Mon fichier cherche dans plusieurs autes fichiers excel des infos sur la masse salariale (N° matricule, nom, prénom, type de contrat,...) en fonction du centre de coût sélectionné à l'aide d'un bouton pour l'année en cours et l'année précédente. Pour l'année en cours, mes formules concernant le filtre élaboré et mes recherchesv ont très bien fonctionné puisque j'ai pu donné les adresses exactes des cellules auxquelles je voulais faire référence (A1, F3, etc.) Je suis donc passée par des formulaLocal. Seulement, je souhaite coller à la suite des résultats pour 2011 le même type d'informations pour 2010. Comme le nombre de lignes (ie le nombre de salariés) varie d'un mois à l'autre et d'un centre de coûts à l'autre, je ne peux plus faire référence à des cellules précises. Je suis obligée de passer par des activecells pour m'y retrouver. --> Par exemple, la formule ci dessous (qui correspond à une cellule de ma ligne que je souhaite étirer) a très tourné et m'a donné le résultat escompté. Code :
Code :
Je suis prête à vous le réexpliquer mille fois s'il le faut, la patience je l'ai, malheureusement, quand on ne sait pas, il faut chercher l'information à l'extérieur. J'espère que vous saurez m'aider, Cdt, Magali |
||||
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour le forum,
Dans un code, j'utilise ceci: Code :
__________________
Bon courage à toi. |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Bonjour Marc
Merci pour ta réponse. Je n'aurais donc à peu de choses près qu'à faire un copier coller de ta réponse, en remplaçant simplement ta formule R1C1 par la mienne ? Ta ligne 1 de code est-elle nécessaire dans mon cas? En tout cas, ca arrangerait bien mes affaires si cela pouvait fonctionner
|
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour le forum,
Ma ligne 1 = Ta ligne 3 écrite différemment. La mienne est automatique sans être contraint de saisir la dernière ligne ("65536") comme tu l'as fait. Mais cela fonctionne dans les 2 cas. Pour moi, je trouve cela plus confortable.
__________________
Bon courage à toi. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Que représentent z2, ad et ad2 dans ta macro?
J'ai du mal à l'adapter à la mienne D'avance, merci. Magali En fait, j'aimerais exprimer ma plage de cellules (ligne 7) en termes de "activecell". J'aimerais quelque chose du genre : Code :
Range((activecell:activecell.offset(0,11)) & (vDerligneSuc) & "").Select
|
|
|
00
|
|
|
#6 |
![]() ![]() |
Déjà utiliser ActiveCell : "Cellule Active " en français est une mauvaise idée .. pour modifier/lire .. le contenu d'une cellule en VBA Excel tu n'as pas besoin de déplacer le curseur ..!
ensuite on va commencer par ta première ligne de code : Code :
activecell.Formula = Application.VLookup(activecell.Offset(0, -6), Workbooks("Ctrl Gestion -SG- analyse par postes -0610.xls").Sheets("MS2").Columns("A:S"), 12, False) Pour déterminer ce qu'il te faut mettre dans ton '.Formula' .. écrit ta formule (étirable..) sous excel, place le curseur sur la cellule contenant cette formule, puis ALT-F11/ CTRL+G pour aller dans la fenêtre exécution de VBE ou tu saisi : ( "?" est la version raccourci de Debug.print qui permet d'écrire dans la fenêtre exécution) et dit nous ce que tu trouve dans la fenêtre exécution ..
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Dans la cellule active, j'effectue une recherchev à partir du n° matricule (trouvable en activecell.Offset(0, -6)) dans un autre fichier. La formule est en anglais dans la mesure où je n'ai pas réussi à traduire correctement activecell et activecell.offset dans le langage simple d'Excel.
Justement, j'aimerais placer à la fois le résultat de ma formule ainsi que ma formule pour que je puisse être capable de l'étirer. |
|
|
00
|
|
|
#8 | |
![]() ![]() |
Citation:
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Voilà ce que ca me donne:
? ActiveCell.Formula =VLOOKUP(B34,'[Ctrl Gestion -SG- analyse par postes -0610.xls]RUB2'!$A:$T,2,"faux") Malheureusement, la référence de la cellule cherchée change d'une sélection à l'autre (le n° de colonne reste le même mais le numéro de ligne est variable )c'est pour ça que je passe par une activecell. Jusque maintenant, cela fonctionne même si ca relève plus d'un gros bidouillage qu'autre chose, je vous l'accorde Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
En fait, je t'ai donné une copie d'un code qui me sert à glisser les formules que j'applique dans les cellules "Z2" AA2 "AB2" "AC2" "AD2".
Ensuite je selectionne toutes les cellules dans lesquelles je souhaite faire glisser les formules : Code :
__________________
Bon courage à toi. |
||
|
|
00
|
|
|
#11 | ||
![]() ![]() |
Pour écrire ta formule , je suppose en H34 , la seule valeur qui change c'est le B34 :
Code :
pour t'aider un peu plus ce qu'il me manque c'est de savoir comment tu lance ta macro, ou du moins comment la cellule H34 devient la cellule Active (et ainsi plus besoin de ce ActiveCell qui fait mal aux yeux..)
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
||
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Je t'envoie ca à ma pause.
Mais tu vas pas aimer... J'ai des activecell PARTOUT ! En fait bbil, si je ne me trompe pas, tu m'as mis r comme colonne variable alors que c'est la ligne variable et la colonne fixe. J'ai juste essayé d'inverser 3 lettres lol et bien sûr ca n'a pas plus marché ! Bon appétit |
|
|
00
|
|
|
#13 |
![]() ![]() |
non r c'est le nom de ma variable de type range (plage de cellule, 1 ou plusieurs cellules)
mon code te permet juste d'écrire la formule avant d'étirer ... si tu ne peu te séparer de ActiveCell pour comprendre le code, tu peu remplacer la ligne set r ... par :
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#14 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Merci bbil !
J'essaie dès mon retour au travail. Je ne sais pas où tu vas chercher tout ça, mais chapeau La formule que tu m'as donné plus haut ne fonctionne pas ou pas bien : Code :
Une idée?! EDIT : Balises de codes [CODE] ... [/CODE] bouton # |
||
|
|
00
|
|
|
#15 |
![]() ![]() |
revoir ton copier/coller à première vue il manque des guillemets ...
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
J'ai essayé comme ca :
Code :
|
||
|
|
00
|
|
|
#17 |
![]() ![]() |
Tu fais cela au hasard ?
pourquoi ne pas prendre directement la ligne de code que j'ai posté ?
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#18 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
J'ai essayé de sophistiquer un peu la formule en intégrant une fonction si.
J'aimerais que, si la référence de la valeur cherchée est vide, la macro m'affiche automatiquement dans la cellule "" sinon elle m'effectue la recherchev. Je l'ai conçu de cette manière : Code :
|
||
|
|
00
|
|
|
#19 |
![]() ![]() |
il semble que tu ais laissé un égale en plein milieu de ta formule ....
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Merci j'ai trouvé.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com