• Initiateur de la discussion Initiateur de la discussion thomas
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

thomas

Guest
Une base excel me permet de rentrer des données dans des tables access. J'éxecute donc dans excel des macros pour mettre à jour les données saisies à l'aide d'un bouton (affecté à une macro). Ces macros sont dépendantes d'une cellule de départ (la première cellule d'un tableau). Pour l'instant, j'ai donc rentré dans le code VBA la cellule de départ. Je voulais savoir si il était possible de lancer une macro avec un paramètre et saisir ce paramètre ailleurs qu'en brut dans le code.
Merci de m'éclairer.
 
il te suffit d'aller la chercher...
si par exemple tu met ton parrametre dans la cellule A1
alors tu vas chercher la valeur par

parametre = MySheet.Range("A1").value

MySheet etant le nom de ta feuille ou tu a insere ton parametre
 
Ma base excel comporte des données d'entrées. Je peux donc insérer des lignes . Du coup, la case qui réferencera la case de départ de tableau changera. Dans mon code, il faudra que je change egalement cette case. D'où le problème.
Par contre, tu viens de me donner une idée: mettre les cases de référencement dans une autre feuille indépendante. C'est dommage tout de même que dans les options d'une macro, on ne puisse pas dire "lance toi avec cette valeur"
 
Bonsoir Thomas,



sub mamacro(parametre as Range)


end sub


C'est un exemple avec une cellule comme paramètre que tu peux utiliser par la suite dans une autre macro, si c'est la première cellule en paramètre dans ta macro principale tu appeleras :

sub principal ()
mamacro("A1")
ens sub


PS: Désolé de ne pas être plus explicite car je ne sais pas trop ce que tu vaux fairte exactement....
 
Voilà, j'explique clairement mon pb :

J'ai une vingtaine de tableaux dans une meme feuille excel. Chaque tableau possède une case de départ.

ex: tableau 1 case de départ "B8"
tableau 2 case de départ "C60"

J'entends par case de départ la première cellule du tableau ( premiere ligne et premiere colonne)

J'applique sur chaque tableau une macro differente. Ces macros ont besoin pour fonctionner de la premiere cellule du tableau que j'insère pour l'instant dans le code en brut (ex: macro 1 possède une variable cellule egal à B8)

Mon pb est que si j'insere une cellule au debut de ma feuille, chaque case de départ de mes tableaux vont changée

ex: tableau 1 case de départ "B9"
tableau 2 case de départ "C61"

Mais dans mon code , c toujours B8 et C60 comme case de départ !
Et vu qu'il y a 20 tableaux et + bientot je n'ai pas envie à chaque fois de changer les 20 cases de départ dans mon code ! Tout cela doit être transparent en plus à l'utilisateur qui lance la macro (= la solution inputbox "entrez la cellule de depart" ne marche pas).

Je ne vois pas encore de solutions!

Voila j'espère avoir été clair sur mon problème.
Merci Zon pour essayer de m'avoir aidé!

Bonne nuit tous !
 
Bonsoir le forum

Thomas utilise alors une range qui trouve ta premiere cellule

debut=range("b1").end(xldown).row

et ensuite Range("B" & debut )

A suivre
smiley_417.gif
 
Bonsoir à tous,

La solution de Mytâ est bonne dans le cas où on a qu'un tableau, par contre si on a des des tableaux les uns au dessous des autres là il risque d'y avoir un hic à moins d'avoir entre les tableaux un intervalle fixe.

Peut être en ayant un exemple de ta feuille avec une de tes macros je pourrais mieux t'aider ....


Je pense qu'en mettant un format de cellule spécifique à tes cellules de départ (Police, Motif...), tu pourras ensuite chercher tes cellules "speciales" dans ta feuille de calcul et ainsi faire tes macros plus facilement.



A+++
 
Appel macro

Je voudrais appeler une macro d'un fichier excel avec une commande dans l'invite de commandes.

Pour lancer un fichier excel il faut faire cet exemple:
D:\program files\Microsoft office\office\excel.exe C:\nova_cde\toto.xls

Mais je ne sais pas lancer une macro de toto.xls

Est-ce possible?
 
Bonjour ttlemonde !

Voila je joint ci dessous ma base excel ( je l'ai simpliflié à 3 tableaux donc 3 macros ). Si on insere une ligne avant les tableaux, mes macros ne fonctionneront plus !
Zon, l'idée d'appliquer un format spécial aux cases de départ est pas mal ! Mais je ne sais pas du tout le gerer !
Myta, ta solution ne marchera pas dans mon cas, car dans le cas de plusieurs tableaux, si on insere plsusieurs lignes, le tableau precedent finira par prendre la place de l'ancien !

J'attends des idées, merci à vous en tout cas !
 

Pièces jointes

Re le forum

Peut-etre une solution pour toi Thomas

remplace cellule="xx" par ceci

Dim cellule As Variant, i As Integer

For Each cellule In Range("A2:A65536")
If cellule.Value = "Service" Then i = i + 1
If i = 1 Then GoTo Saut ' i=2 pour 2 ieme table, 3 pour 3 ieme ...
Next cellule
Saut:
cellule = cellule.Offset(1, 1).Address

Il va alors trouver la bonne cellule de depart tu remplace le i en fonction du tableau premier(1), deuxieme(2) ....

A suivre
smiley_417.gif
 
Salut Myta,

Ta solution est cool ! Elle fonctionne bien dans mon cas 🙂 C'est une bonne idée. Je te remercie pour ton aide !

Excuse-moi de pas avoir regarder plus tôt. J'avais une soirée hier 🙂

@ + sur le forum,
Merci.
 
je travaille sur un fichier d'absence et je voudrais détaillé en plusieurs lignes toutes les absences. Ainsi , je dois avoir autant de lignes que d'absence or ma bas est composé de deux cellules avec la datede début et la date de fin de l'absence.
Donc je dois insérer des lignes qui est égal à la différences entre ses deux dates et ensuite faire un copier coller incrémenter. Si vous pouvais résoudre mon probléme , cela serait génial. Car je ne peux pas avancer
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
406
Réponses
14
Affichages
501
Réponses
3
Affichages
490
Retour