Dans une feuille excel je clique sur un premier bouton qui m'ajoute des lignes correspondant à une commande.
Dans cette ligne que je viens d'ajouter, se trouve un bouton nommé "Créer DS.01".
Le but est de supprimer ce bouton après avoir cliqué dessus.
Le problème : Lorsque j'ajoute une nouvelle ligne de commande, le bouton n'a plus le même nom et change à chaque ajout (button 3, button 4, ...)
Par conséquence ma macro fonctionne seulement la première fois et ensuite ne fonctionne plus.
Comment puis-je faire pour supprimer mon boutton "Créer DS.01" sur chaque ligne de commande ajoutée après avoir cliquer dessus.
Il y a pourtant une astuce simple si quel que soit le bouton
la même procédure est appelée : Application.Caller ...
Cela renvoie le nom du bouton appelant la procédure.
Si par contre la procédure est appelée aussi autrement que par un bouton,
je t'invite à consulter vivement l'aide VBA intégrée concernant cette propriété
et son exemple afin d'appréhender ses subtilités ...
___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Bonjour,
Pourquoi supprimer puis rajouter ce que l'on a supprimé ?*
Pourquoi ne pas tout simplement jouer avec la propriété visible du bouton ?
On ne voit par ailleurs pas par quel code tu as ajouté ce bouton, ni la nature de ce bouton. Il semble (je dis bien "semble") que le bouton en cause est un bouton de Excel et non (ce qui serait beaucoup plus maniable) un contrôle activex.
Il est vraisemblable que c'est la conception elle-même, qu'il serait préférable de remettre en cause.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Le bouton "Créer DS.01" sert à créer un document (Excel) intitulé "Suivi de commande" (Référence DS.01).
Ceci pour chaque commande.
Je souhaite supprimer le bouton après avoir cliquer dessus, pour éviter de pouvoir écraser le fichier déjà créer.
Mon bouton est un bouton de type formulaire.
Ci-dessous le code complet :
Sub Ajouter_commande()
'
' Ajouter_commande Macro
' Macro enregistrée le 26/03/2013
'
Sheets("macro").Select
Rows("7:17").Copy
Sheets("Planning atelier").Select
Rows("18:18").Select
Selection.Insert Shift:=xlDown
Range("A7").Select
End Sub
Sub Créer_DS_01()
'
' Créer_DS_01 Macro
' Macro enregistrée le 03/04/2013 par Kévin Bonfillou
'
msg = "Avez-vous entré le N° de commande ?"
style = vbYesNo + vbQuestion
title = "NUMERO DE COMMANDE"
Response = MsgBox(msg, style, title)
If Response = vbNo Then
Exit Sub
Dim SourceFile, DestinationFile
SourceFile = "C:\Documents and Settings\KBonfillou\Mes documents\Suivi d'une Commande.xls" ' Définit le nom du fichier source.
DestinationFile = "C:\Documents and Settings\KBonfillou\Mes documents\SUIVI COMMANDE" & le_nom_a_donner ' Définit le nom du fichier cible.
' Copie le fichier source dans le fichier cible.
FileCopy SourceFile, DestinationFile
Pas vraiment clair, tout cela .
Je vais essayer de comprendre ce que tu sous-entends :
1) montre le code écrit dans la macro de ce bouton, genre, donc :
Sub Bouton1_Clic()
.... instructions (c'est ce que je veux "voir")
End Sub
2) montre ce que tu voudrais ensuite écrire lors du second clic, genre, donc :
Sub Bouton1_Clic()
.... nouvelle instructions ?(c'est ce que je veux "voir")
End Sub
3) montre à quel momemt/évènement et où tu veux faire apparaître ce bouton. Evènement et code de création
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Sub Ajouter_commande()
'
' Ajouter_commande Macro
' Macro enregistrée le 26/03/2013
'
Sheets("macro").Select
Rows("7:17").Copy (copier la ligne 7 à 17 de la feuille nommé macro)
Sheets("Planning atelier").Select
Rows("18:18").Select Selection.Insert Shift:=xlDown (coller au dessus de la ligne 18)
End Sub
Ce qu'ajoute à ma feuille planning le clique sur le bouton "Ajouter commande"
Ce qui donne :
On renseigne les champs "Intitulé de la commande", "N° commande" et "Date sortie"
On créer la fiche de suivi de commande (Référence DS.01)(Ce document est un document de suivi où sont validées et datées chaques étapes de la commande).
2) Clique sur le boutton "Créer DS.01"
Sub Créer_DS_01()
'
' Créer_DS_01 Macro
' Macro enregistrée le 03/04/2013
'
msg = "Avez-vous entré le N° de commande ?"
style = vbYesNo + vbQuestion
title = "NUMERO DE COMMANDE"
Response = MsgBox(msg, style, title)
If Response = vbNo Then
Exit Sub
End If
I = 18
le_nom_a_donner "DS_01 - " & ActiveSheet.Range("B18") & ".xls" (Nom du fichier créer avec le boutton "Créer DS.01" DS.01 + N° commande (B18))
Dim SourceFile, DestinationFile
SourceFile = "C:\Documents and Settings\KBonfillou\Mes documents\Suivi d'une Commande.xls" ' Définit le nom du fichier source.
DestinationFile = "C:\Documents and Settings\KBonfillou\Mes documents\SUIVI COMMANDE" & le_nom_a_donner ' Définit le nom du fichier cible.
FileCopy SourceFile, DestinationFile ' Copie le fichier source dans le fichier cible.
MsgBox "Fichier DS.01 créé!"
ActiveSheet.Shapes("Button 2").Select
Selection.Cut (Suppression du boutton de CETTE commande)
Ouais ...
Tu n'as absolument pas répondu à mes questions ! Ni à la première, ni à la seconde !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
elles sont dans mon message du lundi 15 avril 2013 à 11:39:00 et sont très claires et précises
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Bonjour,
Si tu veux supprimer le dernier bouton qui a été créé tu peux mettre ceci:
Sub deletecoupe() 'suppression du dernier object dans la feuille1
Dim nombreshapes As Integer
nombreshapes = Worksheets(1).OLEObjects.Count 'compte le nombre d'objects dans la feuille1
Worksheets(1).Activate 'Sélection de la feuille
Worksheets(1).Shapes(nombreshapes).Delete 'on supprime le dernier
End Sub
Bonjour, Le Pivert,
cela n'empêchera pas que le bouton changera de nom à la prochaine création (C'est Excel quoi gère ainsi : Bouton 1 puis bouton 2, puis bouton 3, etc ... et si on supprime le dernier (disons le 3) === >> le prochain sera malgré tout Bouton 4 et non Bouton 3.
Mais il lui a été demandé entre autres :
- son code de création du bouton ===>> toujours pas là
- la macro (Sub Boutonx_Clic() , ou x suffixe du bouton, qui gère les instructions au clic>> toujours pas là !
Alors ... ===>> dialogue de sourds ...
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
[i]Le problème : Lorsque j'ajoute une nouvelle ligne de commande, le bouton n'a plus le même nom et change à chaque ajout (button 3, button 4, ...)
Par conséquence ma macro fonctionne seulement la première fois et ensuite ne fonctionne plus.
Comment puis-je faire pour supprimer mon boutton "Créer DS.01" sur chaque ligne de commande ajoutée après avoir cliquer dessus.
/i
En réponse à cette demande, je lui donné ce code qui supprime le dernier objet créé sur la feuille sans s'occuper de sa nomination.
Pour ce qui est de la façon dont il crée son button je ne la connais pas!
Oui, Le Pivert,
Mais c'est justement là son problème : celui du changement forcé de nom !
Pour ce qui est de la suppression, son code, même peu orthodoxe (à coup de select puis selection.cut) la faisait déjà
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Mais il lui a été demandé entre autres :
- son code de création du bouton ===>> toujours pas là
- la macro (Sub Boutonx_Clic() , ou x suffixe du bouton, qui gère les instructions au clic>> toujours pas là !
Alors ... ===>> dialogue de sourds ...
Si tu regardes bien, j'ai donné ma macro complète.
Il n'y a pas de code de création de bouton...
Je ne peux te donner des choses que je n'ai pas.
Maintenant la solution proposé par Le Pivert peut être une solution étant donné qu'elle supprime le dernier objet.
Mon but est de trouvé une solution pour supprimer le bouton de ma commande après avoir cliquer dessus.
Le fait qu'il s'appel button2, button3 ou button4 est un problème par rapport à la macro que j'ai écrite.
Mais si je peux contourner le nom du bouton tant mieux.
___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Mon but est de trouvé une solution pour supprimer le bouton de ma commande après avoir cliquer dessus.
Le fait qu'il s'appel button2, button3 ou button4 est un problème par rapport à la macro que j'ai écrite.
Mais si je peux contourner le nom du bouton tant mieux.
un bouton dont on n'utilise pas le clic ne sert rigoureusement à rien. Autant ne pas mettre de bouton du_ tout et utiliser l'évèneement selectionchange de la cellule où on l'a mis !!!!
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.