Seysou Posté(e) le 25 janvier 2021 Posté(e) le 25 janvier 2021 Helloooooooo !! i neeeeed helpppppp !!Je vais faire un exemple pour mieux comprendrej'ai plusieurs blocs dans un dessin avec 2 attributs chaque bloc.je vais extraire les attributs de la façon suivante:l'utilisateur clique sur les blocs (bloc par bloc): par exemple il a cliqué sur 6 blocs; après un clic sur entrée je veux:Ouvrir un fichier excel ou bien il modifie sur un fichier déjà ouvert:Inserer les informations suivantes sur l'excel:ligne N°1place dans la colonne A l'attribut 1 du premier blocplace dans la colonne B l'attribut 2 du premier blocplace dans la colonne C l'attribut 1 du 2eme blocplace dans la colonne D l'attribut 2 du 2eme bloc ligne N°2place dans la colonne A l'attribut 1 du 2eme blocplace dans la colonne B l'attribut 2 du 2eme blocplace dans la colonne C l'attribut 1 du 3eme blocplace dans la colonne D l'attribut 2 du 3eme bloc Ligne N°n-1:place dans la colonne A l'attribut 1 du n-1eme blocplace dans la colonne B l'attribut 2 du n-1eme blocplace dans la colonne C l'attribut 1 du neme blocplace dans la colonne D l'attribut 2 du neme bloc J'ai essayé de le faire mais je n'arrive pas :(Des pistes pour m'aider svp
Curlygoth Posté(e) le 25 janvier 2021 Posté(e) le 25 janvier 2021 moi je creerais un tableau dynamique que tu remplis a chaque fois que tu cliques sur un bloc avecRedim preserve pour extraire j'utilise ça 'X c'est l'incrément de ta boucle If blockrefobj.HasAttributes = True Then 'pas obligatoire For Each att In blockrefobj.GetAttributes If att.TagString = "ATT1" Then 'le nom de ton attribut TAB_(X,0) = att.TextString 'la valeur de l'attribut Else End If If att.TagString = "ATT2" Then 'le nom de ton attribut TAB_(X,1) = att.TextString 'la valeur de l'attribut Else End If Next Else End If des qu'il y a une erreur une message box pour demander si tu souhaites sortir ou non de ta sélection ensuite tu crées un classeur excel en vba via la reference Microsoft Excel XX.X Objet Librairy où tu transpose ton tableau apres soit vers un tableau exoistant soit un nouveau et c'est comme excel grace à la reference ;-) Mon site Web (en cours de construction) : Site DA-CODE de @didier
Seysou Posté(e) le 25 janvier 2021 Auteur Posté(e) le 25 janvier 2021 moi je creerais un tableau dynamique que tu remplis a chaque fois que tu cliques sur un bloc avecRedim preserve pour extraire j'utilise ça 'X c'est l'incrément de ta boucle If blockrefobj.HasAttributes = True Then 'pas obligatoire For Each att In blockrefobj.GetAttributes If att.TagString = "ATT1" Then 'le nom de ton attribut TAB_(X,0) = att.TextString 'la valeur de l'attribut Else End If If att.TagString = "ATT2" Then 'le nom de ton attribut TAB_(X,1) = att.TextString 'la valeur de l'attribut Else End If Next Else End If des qu'il y a une erreur une message box pour demander si tu souhaites sortir ou non de ta sélection ensuite tu crées un classeur excel en vba via la reference Microsoft Excel XX.X Objet Librairy où tu transpose ton tableau apres soit vers un tableau exoistant soit un nouveau et c'est comme excel grace à la reference ;-) Merci pour votré réponse;j'ai pensé de faire le boucle do until (jusqu'à l'utilisateur clique sur entrée) comment écrire ça ?
Curlygoth Posté(e) le 25 janvier 2021 Posté(e) le 25 janvier 2021 si tu veux un résultat rapide sans prise de tete (chercher les références qui gère le clavier pendant une instruction, gérer les commandes clavier etc...) fait juste une messagebox tu y gagnera ton temps pour cette petite procédure ;-) "genre voulez vous continuer ?" ou "Voulez vous arreter ?" et la suivant la réponse ton prog part d'une maniere ou d'une autre sinon faut verifier l'entrée clavier chr(10) Mon site Web (en cours de construction) : Site DA-CODE de @didier
Seysou Posté(e) le 26 janvier 2021 Auteur Posté(e) le 26 janvier 2021 si tu veux un résultat rapide sans prise de tete (chercher les références qui gère le clavier pendant une instruction, gérer les commandes clavier etc...) fait juste une messagebox tu y gagnera ton temps pour cette petite procédure ;-) "genre voulez vous continuer ?" ou "Voulez vous arreter ?" et la suivant la réponse ton prog part d'une maniere ou d'une autre sinon faut verifier l'entrée clavier chr(10) Bonjour, Merci pour votre réponse,mais j'ai pas compris ça :(chercher les références qui gère le clavier pendant une instruction, gérer les commandes clavier etc...) Merci par avance
Curlygoth Posté(e) le 26 janvier 2021 Posté(e) le 26 janvier 2021 https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/keypress-event ça c'est la page pour l'évenement quand vous appuyez sur une touche... facile pas compliqué par contre si votre programme tourne et attends la sélection d'un bloc et que vous faites la touche entrée (il va générer une erreur car ce n'est pas ce qu'il demande) c'est pour ça que quand je fais des choses comme ça, je le rentre dans une gestionnaire d'erreur et ensuite je la traite. Maintennnant si vous voulez absolument faire entrée à ce moment la, alors que dans votre procédure vous demande de sélectionner un objet, il va falloir chercher la référence qui permet ça...) car de base le VBA ne fait pas de multi-threading et si tu veux le faire faut ajouter des références au projets Mon site Web (en cours de construction) : Site DA-CODE de @didier
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant