Problème ActiveCell

Chris3M

XLDnaute Nouveau
Bonjour à tous,

Etant novice en VB j'essaye néamoins de créer qques utilitaires pour mon travail.
Avec un peu d'aide, de la recherche sur le net et la lecture de Excel 2003 VBA j'ai réussi à pondre cette séquence :

Sub GetData()

Answer = MsgBox(Prompt:="Switch to non-stock?", Buttons:=vbYesNo + vbQuestion)
If Answer = vbYes Then Range("K2").Value = "Switch to non-stock"
If Answer = vbNo Then
ReceiveText = InputBox("Please provide a reason")
Range("'Sheet1'!K2").Value = ReceiveText
End If

End Sub

Le problème que j'ai c'est que pour une seule ligne, la macro fonctionne très bien, par contre, si je dois l'étendre à 30 lignes, je ferai mieux d'utiliser ActiveCell pour ne pas crée 30 macros, passant de K2 à K3, K4, K5 etc.. etc...

Donc, est-ce qu'une personne serait capable de me dire comment introduire la notion de ActiveCell dans cette macro?

Ou peut-être existe-il une autre fontion permettant de coller une macro à une cellule pour ensuite la "tirer" comme on peut tirer une formule?

Je joins le fichier que j'utilise,

Merci à celui/celle(s)/ceux qui pourront éclairer ma lanterne de débutant VB :eek:

Très bonne fin de journée à tous
 

Pièces jointes

  • Sample.xls
    43 KB · Affichages: 115
  • Sample.xls
    43 KB · Affichages: 125
  • Sample.xls
    43 KB · Affichages: 133

Cousinhub

XLDnaute Barbatruc
Re : Problème ActiveCell

Bonjour,

tout d'abord, pour le code que je te mets, il faut impérativement que tu dégroupes les boutons des lignes 9 à 15
Ensuite, comme tu l'as commencé, que les boutons soient bien alignés dans les cellules

Essaie comme ceci :

Code:
Sub GetData()
x = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
    Answer = MsgBox(Prompt:="Switch to non-stock?", Buttons:=vbYesNo + vbQuestion)
    If Answer = vbYes Then Cells(x, 11).Value = "Switch to non-stock"
    If Answer = vbNo Then
        ReceiveText = InputBox("Please provide a reason")
        Cells(x, 11).Value = ReceiveText
    End If
End Sub

Application.caller te donne le nom du bouton qui appelle le code
TopLeftCell.Row te donne le numéro de ligne de ce bouton
 

JCGL

XLDnaute Barbatruc
Re : Problème ActiveCell

Bonjour à tous,
Bienvenue à Chris3M :),

Peux-tu essayer avec :

Code:
Sub GetData()
 
    Answer = MsgBox(Prompt:="Switch to non-stock ? ", Buttons:=vbYesNo + vbQuestion)
    If Answer = vbYes Then ActiveCell.Offset(0, 0).Value = "Switch to non-stock"
    If Answer = vbNo Then
        ReceiveText = InputBox("Please provide a reason")
        ActiveCell.Offset(0, 0).Value = ReceiveText
    End If
    
End Sub
Pas testé mais oblige à sélectionner la cellule

A+

Edition : Joli BH², très joli
 
Dernière édition:

Chris3M

XLDnaute Nouveau
Re : Problème ActiveCell

Bonjour à tous,

Tout d'abord merci pour votre acceuil et merci mille fois pour votre aide! Quel plaisir de commencer la journée par une réponse à mon problème!

Bhbh c'est exactement la solution que j'attendais! C'est merveilleux!

Pour JCGL et Gilbert_RGI je travaille aussi sur d'autres fichiers et j'ai déjà trouvé une utilité à vos propositions!!! D'une pierre trois coups!

Je prierai les Dieux du VBA en prononçant vos noms à haute voix aux petites heures de la nuit, tout en sacrifiant une vierge sur un autel... enfin, je m'emporte :D

"MERCI"

EDIT :
Pourrais-je pousser le bouchon un peu plus loin et éventuellement demander s'il était possible, toujours via la même macro, s'il choisit "NO" de faire apparaitre une liste de différents choix, disons 4 choix (Item used for repacking - Item used for conversion - Key customer - Other)
S'il clique sur les 3 premiers, cela renverrai le texte de la sus-nommée raison et en choisissant "Other" il y aurait apparition d'un InputBox quelconque :)

Ca m'a l'air tiré par les cheveux mais est-ce possible? J'ai cherché mais je ne trouve pas le nom de cette commande, est-ce un ListBox pour proposer des choix bien définis?

Merci à tous!
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Problème ActiveCell

bonjour,
si j'ai bien compris

regarde le fichier joint, et fais un essai

Edit, j'avais pas lu pour Other, fichier modifié
 

Pièces jointes

  • Sample_v1.zip
    15.9 KB · Affichages: 26
  • Sample_v1.zip
    15.9 KB · Affichages: 22
  • Sample_v1.zip
    15.9 KB · Affichages: 22
Dernière édition:

Chris3M

XLDnaute Nouveau
Re : Problème ActiveCell

bonjour,
si j'ai bien compris

regarde le fichier joint, et fais un essai

Bonjour Bhbh, c'est vraiment très bien fait! Je suis impressionné... Néamoins, lorsque je clique sur "Other" il rejète le texte "Other" dans la cellule ligne 11. Ce qu'il me faudrait c'est un InputBox lorsque je choisi "Other".

En fait il y'a différentes raisons au passage d'un produit en stock vers le statut non-stock, les 3 choix cités sont les plus courants, mail il peut arriver que certains pays aient une raison spécifique => nécéssité d'avoir un InputBox


--------------------------------
Est-il aussi possible de modifier le nom du bouton qui valide "CommandButton1" par "Validate"?
EDIT : J'ai trouvé le Useform1 et j'ai compris comment modifier le texte! C'est génial!
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
533
Réponses
18
Affichages
3 K

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch