Animer des objets (carrés) en fonction de valeurs de tableau
Bonjour à tous,
Cela fait quelques semaines que je cherche à pouvoir animer des objets en fonction de valeurs qui sont dans un tableau en vain, je viens donc à vous!
Plus précisément, l'idée est d'avoir un tableau avec des valeurs (distances parcourues depuis un point) et l'idée serait que le carré se déplace en fonction des valeurs rentrées.
L'idéal serait de ne plus avoir à passer par VBA car le but de cette manipulation est de facilité la tache à des personnes ayant encore moins de connaissances que moi!! Car tout ce que j'ai réussi à faire c'est déplacer un objet avec la commande "left+valeur" ou "up+valeur" mais ca n'a rien de bien plus pratique que de déplacer les objets à la main....
Une autre requête serait de trouver un moyen d'ajouter une colonne à un tableau avec une macro... j'ai essayé d'en enregistrer une mais le résultat est plus que décevant... ca ne marche pas du tout.
Plus précisément (encore, mais il faut être précis), j'ai une plusieurs colonnes "S3 à S6" S4 à S7" et la macro servirait en un click à rajouter une colonne "S5 à S8", et si en plus on peut choisir la couleur....!!!!!!
Une dernière (promis) serait que, si j'ai deux colonnes (d'une meme ligne) qui respectent certaines conditions, avoir le reste des colonnes de cette meme ligne qui se remplis automatiquement (en prenant les valeurs d'une autre ligne ayant les même deux premieres colonnes)
Je reprécise, car je semble toujours me perdre quand je tente d'expliquer... supposons qu'a une ligne, au dessus, j'ai:
|weejet| |megabrain| |cerveau| |cool| |dessinanimé|
alors je rêverais que en entrant
|weejet| |megabrain| les cases d'a côté |cerveau| |cool| |dessinanimé| se remplissent toute seules...
Merci d'avance!! J'espere ne pas avoir été trop exhaustif
J'ai hate d'appliquer
...!
bonjour
sujet 1
peux-tu donner un exemple ? veux-tu vraiment que les "carrés" se "déplacent" ou bien acceptes-tu un graphique du genre histogramme horizontal (on peut mettre en invisible une partie de manière à faire croire à un "carré" positionné sur la droite, un autre sur la gauche etc.) ,
sujets 2 et 3
je te propose d'ouvrir de nouvelles questions séparées afin de permettre des discussions séparées (je sais que d'autres sur le forum ne sont pas d'accord, mais c'est tellement plus efficace)
et mets des fichiers exemples pour mieux te faire comprendre (pas clair tes insertions de colonnes)
Bonjour, merci pour cette réponse rapide!
Sujet 1:
J'avais effectivement pensé à cette solution, ca ne me pose pas de problème mais je n'avais pas réussi à faire quelque chose de potable non plus!
pour être plus concrêt,
J'ai plusieurs poutres représentées par des rectangles qui se déplacent de jour en jour verticalement et horizontalement, par exemple
jour J1:
poutre1 à 3m de poutre2 hier, la poutre 1 a avancé de 3m pendant la nuit -> je rentre l'avancement dans le tableau, et il faudrait qu'elle se retrouve ensuite à 6m!
Après au niveau de l'echelle c'est schématique donc pas de contrainte à ce niveau la
Merci encore!
J'ouvrirais d'autres posts pour le reste, en esperant ne pas trop flooder....!^^
V.
Re-Bonjour,
J'ai réussi à trouver comment faire pour que les carrés bougent....!!
Comme ceci:
Sub Macro6()
ActiveSheet.Shapes("Rectangle 120").Select
Selection.ShapeRange.IncrementLeft -20
End Sub
Mais je suis encore loin d'être satisfait... Y a-t-il un moyen de faire en sorte qu'au lieu d'avoir "-20" comme déplacement, avoir les valeures d'une cellule?
L'un de vous sait-il comment faire pour ne pas avoir à faire une nouvelle macro dès qu'un nouveau carré est fait? Genre "Rectangle(120 to 430)" mais je doute que ca marche avec cette méthode!!
Merci encore d'avance....
V.
Bonjour
Vico a écrit :J'ai hate d'appliquer
...!
Tu n'as pas pris le bon chemin
Joins un fichier comme te l'a demandé jmd, en y expliquant ce que tu veux faire et donnes des exemples de résultat souhaité
Vico a écrit :L'idéal serait de ne plus avoir à passer par VBA
Tes solutions ne comportent que du VBA !!!!!
Voici le document en question,
ce que je voudrais c'est faire en sorte que lorsque je rentre une valeur dans le tableau (2e feuille) les carrés de la feuille 1 se déplacent en conséquence, ce que j'ai amorcé en feuille 3, en me disant que parfois il fallait savoir repartir du début
Le must du must serait d'avoir aussi les cotations!
A propos du VBA, ce que j'entendais était que l'utilisation du dossier ne nécessite pas de passer par VBA, c'est à dire qu'il suffit de clicker sur des boutons et rentrer des valeurs!
J'en profite pour demander si quelqu'un sait comment renommer les formes d'excel?
Merci encore,
V.
Bonjour
Désolé mais je ne comprends pas
Vico a écrit :je rentre une valeur dans le tableau (2e feuille) les carrés de la feuille 1 se déplacent en conséquence
Quelle valeur ?
Où ?
Les carrés lesquels ?
Se déplacent vers droite, gauche, haut, bas ?
Il faut connaitre leur nom UNIQUE
Donnes des exemples clairs
Les carrés en page 1 sont des cellules
Il faut une forme à leur place ?
Je pense qu'il faut connaitre leur position de départ
Que voulais tu faire en page 3 ?
Les cases à cocher c'est pour choisir la forme ?
Si oui il faut prendre des cases d'options : On ne bouge qu'une forme à la fois
Pourquoi la lettre P a été remplacé par le nombre 12 ?
Quelle version d'XL utilises tu ?
Fichier en xls et ton profil indique 2007
Pour info: Pour changer le nom d'une forme
Sélectionnes la forme
Il te faut aller dans la zone nom (en haut des lignes - à gauche des colonnes) : Normalement tu as le nom de la forme sélectionnée
Changes ce nom puis appuies sur la touche entrée
En attente (sans garantie) d'explications supplémentaires
Bonjour, désolé je vais essayé d'être plus clair!
En gros, j'ai des poutres qui partent d'un point 0 (environ 100m en partant de la gauche), ensuite il y a deux opérations répertoriées en page 2:
Ripage: déplacement vers la gauche
Lançage: déplacement vers le bas
Elles sont représentées par des carrés.
A la base j'avais fait la feuille 1 et je déplace tout à la main, mais c'est à la fois long et peu pratique si quelqu'un doit récupérer le dossier.
J'ai donc amorcé quelque chose d'autre en feuille 3.
qu'entend tu par "nom UNIQUE"?
A propos de la feuille 3:
Vu que de nouvelles poutres sont faites régulièrement, j'ai fait deux boutons, un pour en créer des grandes, un autre pour en créer des petites. Le 3e est juste un test pour voir si j'arrivais bien à déplacer un objet sans avoir a rentrer de valeur sur VBA.
Les cases à cocher c'est une amorce: je coche une fois une poutre mise en place et elle devra se colorier en rouge pour indiquer que le travail est terminé.
Concernant le P et le 12.... mauvaise manip probablement :'(
J'utilise deux versions d'excel, 2003 et 2007 en fonction de bureau ou chantier... a vous de choisir le plus pratique!!
Merci en tout cas de me consacrer du temps! Si besoin de plus d'info je reste alerte.
V.
Edit:
Merci pour le changement de nom, comme un idiot je faisais cette manip en tapant "P#" resultat ca m'envoyait sur la case P#...!
Bonjour
Si je comprends bien
Au départ les poutres sont placés à 100 m
Ensuite elles sont ripées ou/et lancées
On devrait dans le graphique trouver les poutres à leur emplacement résultant de ces opérations
Mais en filtrant les données de la page "Opérations" cela ne correspond pas
Exemple la poutre 1222 a été ripée de 47.56 mais se retrouve avant la poutre 1223 qui elle n'a été déplacé que de 39.9
Et beaucoup d'autres incohérences (ou alors j'ai mal compris)
Pas facile à suivre
Quand je marque UNIQUE c'est pour dire que faire bouger une forme, il faut que cette forme ait un nom unique parmi toutes les formes de la feuille
Pourquoi dans la page "Emplacement" il y a des poutres en double, l'opération de ripage concernent toutes les poutres ayant le même nom ?
Vico a écrit :A la base j'avais fait la feuille 1 et je déplace tout à la main
C'est à dire que tu fusionnais d'autres cellules pour représenter la poutre ?
Bonsoir,
effectivement je me suis rendu compte ce matin que les rapports et les faits ne correspondaient pas tous, j'ai rectifié le tir! (cf piece jointe, 300Ko tout pile!)
Il y a plusieurs fois le même nom car chaque jour elles font leur petit chemin!
Il y aurait deux types de formes, mais tout deux des rectangles (4 ou 5 rectangles differents dans le futur mais j'espere pouvoir me debrouiller avec une amorce), l'une de 60*2.5 et l'autre de 30*2.
A la base oui, j'avais fait un schéma rapidement en fusionnant des cellules, mais je me suis vite rendu compte à quel point c'était peu pratique...
Encore merci!!
V.
Bonjour
On avance mais pas encore clair pour moi
Quelle est le positionnement de départ : Positions x et y ?
Les formes en double c'est une erreur, normal et pourquoi (dans la page "Emplacement") ?
Quel est le ripage total au maximum ?
Quel est le lançage total au maximum ?
Pourquoi la poutre P26 (en double) se se retrouve côté file droit alors qu'il n'y a aucun lançage ?
Le plus dur je pense que cela sera la cotation
Bonsoir,
En théorie la position de départ est de 0 et le ripage max est celui de la P26 (les autres viennent se coller à elle, après lancage + ripage pour les grandes, et juste ripage pour les petites)
ca donne quelque chose du genre:
--------- 26
7717 -------------------
--------- 25
7716 -------------------
nota : elles sont centrées sur un meme axe avant le lancage j'espere que ca ne complique pas trop
(j'ai edité mon schéma qui ressemblait a rien... il manque les epaisseur mais elles se touchent chacune, ce schéma est tourné de 90° par rapport au fichier excel)
j'espere que c'est assez explicite
Concernant les doublons (26 717 25) c'est car a la base j'ai fait une vue en coupe donc on voyait pas le lancage, maintenant je serais plus pour une vue de dessus!
Par rapport aux cotes, ce que j'avais pensé est un peu bancale, mais j'avais pensé a ne pas prendre la peine de faire de fleches et juste mettre le chiffre qui serait egal a la somme des ripages - somme des ripage des autres poutres - epaisseur des poutres...
et pour l'emplacement du chiffre "somme rippages - cote ripage/2"
par exemple si j'ai une poutre a 10m du bord et qu'il ya une poutre de 2m d'épaisseur qui est elle a 4m du bord, j'aurais
cote entre p1 et p2 = 10-2-4 = 4m
emplacement = 10-4/2 = 8m
Qu'en pensez vous?
Definitivement, merci infiniment pour le temps que vous me consacrez!!!!
V.
Je ne sais pas comment te remercier!!!
C'est exactement ce que je cherche à faire!
Il y a juste la taille des poutres et les côtes (ca va ensemble je pense) qui sont à changer! (en regardant je pense que les poutres de 2m de large sont comptées à 2.5m, comme les grosses)
Je joins une feuille avec l'aspect que ca a vue de dessus (qui permet d'avoir une meilleure vision, les tailles que je vous ai donné correspondent à la vue de dessus)
Les contours en gras représentent les chemins sur lesquels elles avancent.
J'étais parti sur un systeme de bouton un peu plus fastidieux à utiliser....
En regardant le code je me suis dit que j'avais omis un détail qui peut avoir son importance:
les poutres commençant par P7## sont les grandes (60*2.5m), celles nommées P## sont les petites (31.5*2m, j'ai mesuré aujourd'hui, c'est pas 30...
Bonjour
Vico a écrit :en regardant je pense que les poutres de 2m de large sont comptées à 2.5m, comme les grosses
Tu peux être plus précis
Lesquelles ont une largeur erronée ?
Vico a écrit :les poutres commençant par P7## sont les grandes (60*2.5m), celles nommées P## sont les petites
Dans le code c'est régit par le nombre de caractères du nom
Vico a écrit :31.5*2m, j'ai mesuré aujourd'hui, c'est pas 30...
)
Ce n'est pas grave et n'a pas d'incidence (ou du moins je n'en ai pas vu) sur le résultat
Bonjour,
désolé pour le temps de réponse!
J'ai repassé un peu de temps à regarder le code, il semble que ce soit plus sur le "largeurM" qu'il y a un soucis, j'ai cru au départ que c'était un problème de largeur de poutres à cause des côtes mais c'est en jouant sur "largeurM" que j'ai pu voir celles-ci changer.
Exemple: j'ai un décalage de +0,5m entre 21 et 714, idem entre 714 et 22, -0.5 entre 23 et 715 etc...
En mettant largeurM:2 pour chaque poutre, j'obtiens une cote correcte pour les premières mais ça se décale ensuite :'(
Sinon petite question, pour que les flêches prennent les côtes, quelle est la condition? J'ai fait le test de rajouter une poutre (en la calant entre 2 autres) une cote apparait, ce qui est parfait, par contre si j'essaye d'agrandir une des grosses poutres pour qu'elles se chevauchent en y la côte passe à travers
J'ai essayé de manipuler les hauteurs pour me rapprocher plus de la vue de dessus que celle en coupe représentée au départ
Je sens être tout proche du but, excel me passionne de plus en plus!!
Je ne suis pas sur d'avoir été très précis, je vais veiller à être alerte si plus de précisions sont nécessaires.
ps: en cherchant à faire une autre manip' je suis tombé sur un autre post ou tu avais répondu exactement ce qu'il me fallait, décidément....merci!!!!
V.
*edit* •peut être que ces ecarts en questions peuvent être dus au fait que les grosses doivent partir de 0,5m plus proche du bord? (car plus grosses)
•je crois que la condition pour que la côte soit prise en compte est qu'elle touche le coin inférieur du rectangle, si oui est-il possible de faire en sorte que ce soit quand elle touche un bord?
Bonjour
Je ne comprends pas tout ce que tu dis
Pour la poutre 714 et 21
La 714 est à 48,72 du départ, sa largeur est de 2,5
La 21 est à 8,97 du départ
Donc la distance entre le bord droit de la poutre 714 et le bord gauche de la poutre 21 est
48,72 - 2,5 - 8,97 = 39,25 ce qui est marqué
Je t'avais marqué
Banzai64 a écrit :Quelle est le positionnement de départ : Positions x et y ?
Tu m'as répondu
, donc pour moi la position gauche de la poutre au départ et la position basse de la poutre au départ étaient identiques quelques soient les poutresVico a écrit :la position de départ est de 0
Vico a écrit :Sinon petite question, pour que les flêches prennent les côtes, quelle est la condition?
Tout simple il faut que la base soit au même niveau
Si tu connais un autre moyen n'hésites pas
Vico a écrit :je suis tombé sur un autre post
Si ce n'est pas indiscret, cela serait bien de le connaitre
Vico a écrit :je crois que la condition pour que la côte soit prise en compte est qu'elle touche le coin inférieur du rectangle, si oui est-il possible de faire en sorte que ce soit quand elle touche un bord?
Si tu peux détailler ta réponse
Bonjour,
Je me suis mal m'exprimé en parlant de la position de départ, je m'en excuse! Je parlais du bord droit
J'aurais du m'en douter vu qu'il faut donner les distances par rapport au bord gauche de la feuille...
Le bord gauche des grosses poutres (P7##) sont donc à 0.5m plus proche du bord gauche de la feuille. J'ai essayé de changer ça sur le code au niveau du "with shape" en rajoutant du "if then", ca n'a pas été très efficace!
La position basse de la poutre est elle bien la même pour toutes au départ
C'est bien ce que j'entendais par "coin inférieur", il faut que la base soit au meme niveau^^
Il y a une petite coquille dans ton calcul, la 21 étant de 2m de large il faut remplacer 2.5 par 2
Je cherchais à faire en sorte que si j'ai un mot ("Xr") dans mon tableau, avec une valeur à côtée (0.5 par exemple), alors le chiffre 0.5 s'affiche dans la colonne des ripages (Xr correspondant aux petits réglages), j'étais parti sur du if/then et en cherchant je suis tombé sur https://forum.excel-pratique.com/excel/fonction-si-t38974.html avec la commande SI(ESTNUM(cherche...)) qui marche nickel!!
*edit: je m'etais trompé de lien!
Bonjour
Des réponses précises aux questions posées éviteraient de poser des rustines dans le code
Vico a écrit :Il y a une petite coquille dans ton calcul, la 21 étant de 2m de large il faut remplacer 2.5 par 2
Je ne crois pas
Ou alors on ne parle pas de la même chose
Le réglage fin je ne sais pas si c'est du ripage ou du lançage ou un mélange des 2
Sans plus de précision je laisse de côté
Ce fichier décale systématiquement les poutres 7..... de 0.5 vers la gauche
A tester
Ca marche nickel!
Reglage fin concerne les 2, je me suis débrouillé avec la fonction citée ci dessus
Un grand merci à toi une fois de plus banzai64!
A bientôt probablement,
Me reste plus qu'à trouver le fameux bouton
Bonne continuation!
V.