Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Αναζήτηση συνάρτησης:"If then do στο κελί τάδε αυτό και στο κελί τάδε το άλλο..." (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/2499-anazitisi-synartisis-if-then-do-sto-keli-tade-ayto-kai-sto-keli-tade-allo.html)

vagpte 26-04-13 17:22

Αναζήτηση συνάρτησης:"If then do στο κελί τάδε αυτό και στο κελί τάδε το άλλο..."
 
Καλησπέρα σας! Συγχαρητήρια για την πραγματικά υπέροχη σελίδα - εργαλείο μάθησης.

Θα ήθελα να ρωτήσω πως μπορώ στο excel 2013 ή 2010 ή 2007 να ορίσω μια συνάρτηση που να κάνει το εξής:
Αν Α1=5 τότε να βάζει στο κελί Α2 την τιμή 5, στο κελί Α3 την τιμή 6 και στο κελί C4 να βάζει κάποιο κείμενο.
ΣΗΜΕΙΩΣΗ: Δεν θέλω να βάζω στα κελιά Α2, Α3, C4 κλπ. μια IF για παράδειγμα και να παίρνουν τιμή με τη συνάρτηση....
Θέλω βάζοντας συνάρτηση σε κάποιο άλλο κελί όποιο να 'ναι, να παίρνουν τιμές και τα άλλα κελιά.

Ευχαριστώ εκ των προτέρων!

gr8styl 26-04-13 18:09

Βαγγέλη καλώς όρισες στο φόρουμ.
Πρέπει να ξέρεις ότι στο Excel (και αναφέρομαι σε όλες τις εκδόσεις του) ένα κελί παίρνει μια τιμή με 3 και μόνο 3 τρόπους
  1. ο χρήστης καταχωρεί την τιμή ή κάνει επικόλληση ήδη αντιγραμμένου κελιού ή των περιεχομένων του.
  2. το κελί περιέχει κάποια συνάρτηση που αποδίδει την τιμή.
  3. με χρήση κώδικα VBA εφαρμόζουμε μια από τις 2 προαναφερθείσες περιπτώσεις δηλ καταχώρηση ή επικόλληση, τιμής ή συνάρτησης που αποδίδει την τιμή.
Δεν είναι δυνατόν ένα κελί να αποδώσει τιμή σε κάποιο άλλο κελί.
Εάν θέλεις το κελί να μην περιέχει τίποτα και να αποκτά περιεχόμενα μόνο όταν κάποιο άλλο κελί πάρει συγκεκριμένη τιμή θα πρέπει να καταφύγεις στη 3 περίπτωση που ανέφερα.
Δηλαδή με κώδικα VBA θα καταχωρείς την τιμή που θέλεις κάθε φορά που θα πληρούνται οι προϋποθέσεις.

Φιλικά
Θανάσης.

vagpte 26-04-13 18:16

Θανάση σ' ευχαριστώ για την άμεση απάντηση!

Δεν ήξερα αν μπορούσε να γίνει αυτό που ζητούσα και φανταζόμουν ότι θα ήταν εφικτό με χρήση κάποιας γλώσσας προγραμματισμού, γι' αυτό ρώτησα.

Δε φαντάζεσαι πόσες ώρες είχα φάει με διάφορα "τεχνάσματα" για να το καταφέρω....

gr8styl 26-04-13 18:18

Πολύ σωστά το φανταστηκες.
Η VBA (Visual Basic for Applications) είναι γλώσσα προγραμματισμού, και ο παρακάτω κώδικας κάνει αυτό που ζήτησες.

Sub Vagelis()
If Range("A1").value=5 then
Range("A2").value=5
Range("A3").value=6
End If
End Sub

Spirosgr 08-05-13 11:23

Καλημέρα
Με βάση τα παραπάνω μια πολύ χρήσιμη εφαρμογή θα ήταν η εξής:
Αν κάποιο κελί πχ Α1 παίρνει μια συγκεκριμένη τιμή πχ = 5
τότε αυτόματα να εμφανίζονται κάποιες λέξεις, επισημάνσεις στα κελιά μιας άλλης περιοχής της επιλογής μας
Βάζουμε τον παρακάτω κώδικα στο Φύλλο (όχι σε Module) και σε κάθε αλλαγή ελέγχει αν η τιμή του Α1 είναι 5 και ανάλογα "γεμίζει" τα κελιά της περιοχής που θέλουμε

Κώδικας:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim c As Range
    Application.ScreenUpdating = False
    For Each c In Range("myRange")    'για κάθε κελί της ονομασμένης περιοχής
        If Range("A1").Value = 5 Then    ' αν η τιμή του Α1 είναι πχ = 5
            c.Value = "Done"    ' τότε γράψε σε όλα τα κελιά της περιοχής την λέξη πχ "Έγινε"
        Else    'άλλως
            c.Value = "in Progress"    'γράψε σε όλα τα κελιά της περιοχής την λέξη πχ "Σε εξέλιξη"
        End If
    Next
End Sub

Καλή συνέχεια!


Η ώρα είναι 07:26.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2