Deux petites questions
Bonjour à tous et à toutes,
Voila deux petites questions, je suis actuellement en train de trifouiller excel pour créer quelques petites macros.
J'aimerai faire référence à un tableau que j'ai mis sous "forme de tableau" appeler Mon_Tableau, auriez vous la bonne petite ligne de code qui me permet de faire référence à celui ci?
J'ai essayer :
Range("Mon_Tableau").SelectionBoard("Mon_Tableau").Selectionmais ca fonctionne pas...
Deuxième petite question, sur ma feuille j'ai X tableaux (ils comportent un titre et un code chacun). Est il possible d'appliquer un filtre que me permettrais d'afficher uniquement un tableau spécifique. Idéalement, une seconde fenêtre contextuelle serait vraiment top (genre une fenêtre comme les msgbox).
Merci à vous,
Bonjour,
Pour l'accès à ton tableau :
MsgBox ActiveSheet.ListObjects("Mon_Tableau").DataBodyRange.Address(0, 0)Merci pour ton retour.
Ca doit être moi qui fait un truc de mal, mais quand j'exécute la macro, ca m'affiche la plage de donnée du tableau. (ex : A5:I17).
J'aimerai qu'il affiche le tableau en lui même.
De plus, je vois que je vais vite avoir un problème en opérant de cette manière. Je m'explique.
J'insère avec une macro des tableaux prédéfini. Par conséquent a chaque fois que j'insère un tableau le nom du tableau change. Dans mon cas excel renomme les tableaux de cette manière : Mon_Tableau2 ; Mon_Tableau3 ...etc. Sachant que pour chaque tableau je le lui indique, dans une de ses cellule, un code (Ex 01.1 ; 01.2 ...etc)
Il faudrait donc que excel puisse chercher le code dans la feuille de calcul et affiche le tableau dans lequel le code inscrit. Possible selon vous?
Concernant la 1ère question, j'ai oublier d'indiquer une chose important sur le tableau "Mon_Tableau" auquel Excel doit faire référence dans la macro.
Il faudrait que excel puisse faire la distinction avec tout les tableaux qui seront à terme dans la feuille de calcul.
Il faudrait qu'il puisse de lui même prendre le dernier tableau insérer. (Ex : Si le dernier est Mon_Tableau5 il faut qu'il sélectionne celui ci, par contre si au cours de l'utilisation, le dernier tableau est Mon_Tableau42, il faudrait qu'il prenne celui ci est pas le précédent utiliser comme référence... etc). Esce possible?
PS : Je tient à vous signalez que je suis débutant en macro.
Bonsoir Bidou-san,
Si ton tableau est par exemple en "Feuil3" :
Worksheets("Feuil3").Select
ActiveSheet.ListObjects("Mon_Tableau").SelectJ'ai pas testé, mais normalement, ça devrait aller.
Si A1 est la cellule qui contient 01.1 ou 01.2 :
Worksheets("Feuil3").Select
ActiveSheet.ListObjects("Mon_Tableau" & DROITE(A1;1)).Select(pas testé non plus, car sans fichier)
dhany
Bonjour,
Pour la 1ère. question :
Public Sub XXX()
Dim n As Long
With ActiveSheet
n = .ListObjects.Count
.ListObjects(n).Range.Select
End With
End SubPour la suite, afin d'éviter de perdre du temps, tu joins un petit fichier.
Cdlt.
Bonjour,
Pour la 1ère. question :
Public Sub XXX() Dim n As Long With ActiveSheet n = .ListObjects.Count .ListObjects(n).Range.Select End With End SubPour la suite, afin d'éviter de perdre du temps, tu joins un petit fichier.
Cdlt.
Bonsoir et merci à vous deux, vous etes des chefs.
Jean Eric ton code marche impeccablement. Merci
Mais j'ai un soucis sur le décalage du tableau lors de l'insertion du prochain tableau. Pourriez vous y jeter un coup d'oeil. Ca me l'insère 4 ligne après la première ligne du tableau... J'aimerai à partir de la dernière ligne du tableau
Comme vous pouvez vous en apercevoir je vais avoir un certain nombre de tableau qui vont ce suivre comme cela. Concernant la fonction de tri que je voudrais mettre en oeuvre, pensez vous pouvoir faire quelques chose. Je resterai sur une fenetre type msgbox qui m'afficherai le tableau souhaiter.
Merci encore, au bonheur de vous lire, j'apprend plein de chose aujourd'hui
EDIT :
Concernant le fonctionnement, le premier bouton insert le tableau ou je le veux en sélectionnant la ligne. Le deuxième dois l'insérer automatiquement à la suite du premier.
Concernant le fonction tri, Dhany, je vois pas très bien comment fonctionne ton code. Ou esce que j'entre le code pour faire apparaitre le tableau voulu
Mon code était juste pour t'aider à sélectionner ton tableau ... et juste une piste, rien de plus !
pour le reste de ta demande, je laisse Jean-Eric te répondre (il est plus calé que moi là-dessus).
dhany
Mon code était juste pour t'aider à sélectionner ton tableau ... et juste une piste, rien de plus !
pour le reste de ta demande, je laisse Jean-Eric te répondre (il est plus calé que moi là-dessus).
dhany
Pas de soucis, merci tout de même
Par contre, le Sensei étant partis pour le moment, tu pourra peut être m'aider sur un point que je vient de découvrir. Le premier tableau me servant de base au différentes insertions, est destiné à être masqué. Et je me rend compte qu'en masquant ces lignes, à l'insertion elle seront aussi masqué
Pense tu pouvoir modifié le code pour qu'il les inserts mais en rendant les lignes visibles pour ceux insérer?
J'ai voulu opérer comme cela pour simplifier le code et gardé la taille des lignes, mais ca créer de nouveau soucis
Désolé : j'suis pas assez doué avec les tableaux ; pour mes fichiers persos, j'les utilise jamais car ils marchent pas si on protège la feuille de calcul, et j'tiens beaucoup à cette protection car ça évite tout risque d'écrasement accidentel des formules ! c'est une habitude que j'avais prise dès mes toutes premières utilisations d'la version Excel 5b (version d'avant Excel 2003).
Les tableaux actuels ListObjects s'appelaient avant des "Listes", ce qui était plus Jean-Eric sensei (sensé) car "Tableau" est un terme bien trop général ! Excel étant un tableur, c'est normal qu'en l'utilisant on voit des tableaux partout ! j't'assure qu'c'est pas une bête hallucination, comme ça pourrait t'arriver si t'étais dans un
J'ai jamais compris pourquoi Microsoft propose d'un côté la protection de la feuille pour protéger les formules, et de l'autre côté est pas fichu d'proposer des "Listes" qui marchent même si la feuille est protégée ! il aurait pu faire en sorte que toute action sur une Liste Tableau soit précédée d'une dé-protection de la feuille ... puis suivie d'une re-protection ; cela en interne, de façon transparente pour l'utilisateur ; mais tout ça, bien sûr, pour une feuille protégée d'façon simple, sans mot de passe.
dhany
Ah oui c'est trop con ça... Pas très malin de leurs part... En tous cas merci à toi pour le temps que tu m'a consacrer. N'hésite pas à venir lire malgès ça. Tu pourrais bien pouvoir m'aider dans le futur... Je ne fais que commencer ce "projet" de simplification et de dynamisation.
Pour en revenir au sujet, je vais attendre le Sensei je crois bien et verrais avec lui si il peux faire quelque chose.
Si d'autres personnes sont en capacité de m'aider j'accepte également hein
Bonne soirée a toi et à tout le moment je vais dodo. Je reviens demain.n
Bonjour,
Je dis : On ne met pas des tableaux (dynamiques) les uns en dessous des autres !...
Cordialement.
Ce n'est pas possible donc?
Jean-Eric, je pensais à combiner la fonction offset et ton code...
Re,
Si c'est possible, mais il ne faut pas le faire.
Tu n'as pas besoin de tableaux (table) car tes plages sont apparemment fixes.
L'intérêt des tableaux est qu'ils sont dynamiques.
Je profite de ce message pour te dire que tu as un nombre important de boutons sur ta feuille ! ...
Cdlt.
Jean-Eric,
Justement les tableaux ne seront pas fixe à terme. Le premier tableau peux faire 10 lignes et le second inséré 100. C'est pour ça que je veux l'insérer en "détectant sa taille".
Cette feuille sert à faire des métrés pour mon travail (bâtiment).
Si tu peux me filer la réponse ce serait super
Bah il y a 3 boutons c'est pas énorme je trouve... Bon à terme il y aura plus de bouton au fur et à mesure de l'insertion de tableau mais c'est pour clarifier le métré et distinguer chaque ouvrages que je métrerai à terme.
A terme ce sera moins indigeste qu'un long tableau ne ce terminant plus... Malgrès la méthode des multiples tableaux, ce sera tout de même assez indigeste je te l'accorde. C'est pour ça que j'aimerai créer ensuite une fonction de tri par le biai d'un msgbox (décrite plus haut dans le fil).
EDIT : Si tu as une approche plus efficace et plus "ludique" je prends tout conseils
Re,
Au sujet des boutons :
J'ai écrit qu'il y en avait un certain nombre. C'est un jeu de cache cache que tu nous fait. Sélectionne un bouton et déplace le ! ...
Pour les tableaux (tables) :
Imagine de les mettre en colonnes. Tu n'auras plus de soucis pour le nombre lignes (insertion/suppression).
Comment penses tu nommer un nouveau tableau lors de sa création ?
Profite de ce dimanche de Pâques pour méditer ! ...
Heuuu, oui effectivement c'est très simple de partir en colonne suffit de décaler par rapport à ces dernières. Mais je vois 2 soucis vis à vis de l'insertion/suppression.
1 / Pour l'impression, cava plus bouffer du papier. J'aurais 1 articles par page. Pas très écolo tous ça...
2 / Si je veux supprimer/insérer des lignes cava le faire sur tous les tableaux. Ca m'arrange pas du tout ça.
Le plus simple serait de rester sur un système d'insertion par rapport aux lignes. Moins vis-à-vis de la macro cependant (pour moi tout du moins). En fin je trouve...
Dit moi si je me trompe...
Problème résolu. J'ai réussi.
A ceux qui serait intéresser voici le code utiliser.
Sub COPIE_TABLEAU_V2()
Destination = Worksheets("M").Cells(Rows.Count, 1).End(xlUp).Row + 2
'Copie du tableau
Worksheets("DATA_M").Select
Rows("6:22").Copy Destination:=Worksheets("M").Range("A" & Destination)
Worksheets("M").Select
End SubPassons maintenant à l'option de tri que j'aimerai mettre en oeuvre.
Une personne pourrais m'aider à ce niveau?
Pour rappel, j'aimerai un tri avec une msgbox du style.
1 / Je clique sur le bouton.
2 / Ca ouvre une msgbox qui me demande un code (ce code sera inscrit dans une des cellulles d'un des tableaux)
3 / Ca ferme la msgbox et en rouvre une nouvelle qui m'affiche cette fois le tableau qui lui est associé en lui même.
Réalisable?