Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [VBA] Δημιουργία κουμπιού για εκτέλεση συνάρτησης

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 08-05-12, 18:14
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-04-2011
Μηνύματα: 28
Προεπιλογή Δημιουργία κουμπιού για εκτέλεση συνάρτησης

Καλησπέρα. Σε ένα excel έχω την παρακάτω συνάρτηση

Κώδικας:
=INDEX(B19:B195;RANDBETWEEN(1;177))
Και θέλω να φτιάξω ένα κουμπί με το οποίο όταν το πατάω να εκτελείται η συνάρτηση αυτή και να μου εμφανίζει ένα όνομα από αυτά.. Είναι για τυχαία επιλογή ονόματος. Ευχαριστώ
Απάντηση με παράθεση
  #2  
Παλιά 08-05-12, 20:21
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Ένας τρόπος είναι ο πιο κάτω

Ονομάζουμε την περιοχή Β19:Β195 area
Αριθμούμε Α19:Α195 από το 1 έως το 177
κώδικας σε Module
Sub Macrorandnames()
Range("A1").FormulaR1C1 = "=RANDBETWEEN(1,177)"
End Sub

οι τύποι στα κελιά Α1, Α2
A1 =RANDBETWEEN(1;177)
A2 =INDEX(area;A1)
ή όπου αλλού θέλουμε

Φτιάχνουμε ένα κουμπί και του περνάμε την εντολή
Απάντηση με παράθεση
  #3  
Παλιά 08-05-12, 21:35
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-04-2011
Μηνύματα: 28
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από spirosgr Εμφάνιση μηνυμάτων

οι τύποι στα κελιά Α1, Α2
A1 =RANDBETWEEN(1;177)
A2 =INDEX(area;A1)
ή όπου αλλού θέλουμε

Φτιάχνουμε ένα κουμπί και του περνάμε την εντολή
Ευχαριστώ για την απάντηση σου... Έκανα όσα μ είπες...Το κομμάτι ώμος που έχω παραθέσει δεν έχω καταλάβει..Με το που πατάω το κουμπί μου εμφανίζει αριθμούς όχι ονόματα..
Απάντηση με παράθεση
  #4  
Παλιά 08-05-12, 21:38
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Δες κι αυτό το συνημμένο
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm Book1.xlsm (22,9 KB, 59 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 08-05-12, 21:42
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-04-2011
Μηνύματα: 28
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από choulio19 Εμφάνιση μηνυμάτων
Ευχαριστώ για την απάντηση σου... Έκανα όσα μ είπες...Το κομμάτι ώμος που έχω παραθέσει δεν έχω καταλάβει..Με το που πατάω το κουμπί μου εμφανίζει αριθμούς όχι ονόματα..
δες πως το έκανα εγώ
Συνημμένα Αρχεία
Τύπος Αρχείου: xls ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ ΥΠΑΛΛΗΛΩΝ.1 (1).xls (166,0 KB, 40 εμφανίσεις)
Απάντηση με παράθεση
  #6  
Παλιά 08-05-12, 21:53
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Αφού άλλαξες θέση στον τύπο άλλαξε κι αυτόν από Α1 (που ήταν στο παράδειγμα) με το Κ12 που είναι στην πραγματικότητα για να δουλέψει

=INDEX(area;K12)
Συνημμένα Αρχεία
Τύπος Αρχείου: xls ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ ΥΠΑΛΛΗΛΩΝ.1 (1).xls (168,0 KB, 53 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 08-05-12, 22:10
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-04-2011
Μηνύματα: 28
Προεπιλογή

Το κατάλαβα...Ευχαριστώ πάρα πολύ. Καλό βράδυ
Απάντηση με παράθεση
  #8  
Παλιά 09-05-12, 07:18
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Καλημέρα
Παρατήρησα ότι και στον κώδικα έχεις αλλάξει το Range σε J12
Άρα για να είναι όλα σωστά πρέπει:
ή αν έχεις την RANDBETWEEN στο Κ12 και την INDEX στο K13 να βάλεις για Range στον κώδικα Κ12 και να διαγράψεις την RANDBETWEEN από το J12
ή αν θέλεις οπωσδήποτε το J12 στον κώδικα άλλαξε την INDEX που είναι στο Κ13 σε =INDEX(area;J12) και διέγραψε την RANDBETWEEN από το Κ12 για να μην έχεις 2 κελιά που θα εκτελούν τους τυχαίους αριθμούς
Γενικά αν θέλεις να το χρησιμοποιήσεις και αλλού ακολούθησε τον κανόνα
Το κελί που θα εκτελείται η RANDBETWEEN μπαίνει στον κώδικα ως Range
Όπου θέλεις βάλε την INDEX αλλά το κελί που "παίρνει" να είναι αυτό που εκτελείται η RANDBETWEEN
Απάντηση με παράθεση
  #9  
Παλιά 09-05-12, 13:39
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Καλημέρα σας
Θα ήθελα να πω ότι με τις μέχρι τώρα προτάσεις, το J12 (άρα και το τυχαίο όνομα) αλλάζει τιμή κάθε φορά που το Excel κάνει υπολογισμό και όχι μόνο όταν πατάμε το κουμπί !!!

Δεν είμαι σίγουρος για το ποιο είναι το ζητούμενο αλλά,

Για να αλλάζει ΜΟΝΟ (αλλιώς νομίζω δεν έχει νόημα) όταν πατάμε το κουμπί, η μακροεντολή πρέπει να καταχωρεί τυχαία τιμή στο κελί J12 και όχι τύπο.

Range("J12").Value = Int(177 * Rnd) + 1

Το 177 βέβαια καλό θα είναι να είναι δυναμικό δηλαδή Range("area").Rows.Count άρα θα πρότεινα
Κώδικας:
Sub Macrorandnames()
Randomize
Range("J12").Value = Int(Range("area").Rows.Count * Rnd) + 1
End Sub
Ο τύπος που μας δίνει το τυχαίο όνομα είναι
=INDEX(area;J12)

Φιλικά
Θανάσης
ΥΓ. Αν θέλουμε τυχαίο όνομα όταν γίνεται υπολογισμός και όχι ΜΟΝΟ όταν πατάμε το κουμπί, δεν χρειάζεται VBA και κουμπί. Αρκεί ο τύπος: =INDEX(area;INT(RAND()*COUNTA(area))+1) και F9 για να προκαλέσουμε υπολογισμό.
Απάντηση με παράθεση
  #10  
Παλιά 09-05-12, 18:37
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Ναι Θανάση έχεις δίκιο
Δεν απέκλεισα τον τυχαίο υπολογισμό όταν υπολογίζει η excel
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Συναρτήσεις ] Δημιουργία μακροεντολής για εκτέλεση εντολής mousatos Access - Ερωτήσεις / Απαντήσεις 2 08-09-13 20:05
[ Φόρμες ] Ενεργοποίηση-Απενεργοποίηση κουμπιού Χρήστος Access - Ερωτήσεις / Απαντήσεις 2 26-07-13 12:42
[Γενικά] Ενεργοποίηση απενεργοποίηση κουμπιού και σήμανση PANIK Excel - Ερωτήσεις / Απαντήσεις 4 14-04-12 15:03
[ Φόρμες ] Εναλλαγή λεζάντας κουμπιού artchrist73 Access - Ερωτήσεις / Απαντήσεις 1 13-06-11 20:50
[Γενικά] Δημιουργία κουμπιού και δημιουργία νέας λίστας sethii Excel - Ερωτήσεις / Απαντήσεις 3 31-03-11 07:52


Η ώρα είναι 19:45.