Forum

Αναζήτηση στο ms-office.gr

Πάμε!
ms-office.gr > Forum > Microsoft Office > Visual Basic for Applications (VBA) > [Excel - VBA] Αναπαραγωγή φόρμας

Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA.

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 27-01-11, 14:52
Όνομα: Αργύρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2011
Μηνύματα: 4
Προεπιλογή Αναπαραγωγή φόρμας

Καλησπέρα σε όλους

Θέλω να με βοηθήσετε στο πρόβλημα μου. Εχω σχεδιάσει μια φόρμα στο excel που αποτελείτε απο 4 στήλες και 12 κελιά. Τα κελιά περιέχουν άλλα δεδομένα και άλλα αποτελέσματα κάποιων συναρτήσεων.

Πώς μπορώ να δίνω μια τιμή(αριθμιτική) σε ένα κελί και να μου φτιάχνει αυτη την φόρμα ανάλογα με την τιμή;

Π.Χ. Αν δώσω την τιμη 2 να μου φτιάξει 2 φορές την φόρμα, άν 3 τρείς φορές κ.ο.κ.

Ευχαριστώ εκ των προτέρων
Απάντηση με παράθεση
  #2  
Παλιά 27-01-11, 16:34
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 578
Προεπιλογή

Φίλε Αργύρη,
καλώς όρισες στη παρέα μας.

Για πες μας
Θέλεις να αντιγράφεις το φύλλο ή την περιοχή των 4χ12 κελιών μόνο;
Πες μας που θέλεις να είναι ο προορισμός: σε νέο βιβλίο, νέο φύλλο στο ίδιο βιβλίο ή στο ίδιο φύλλο και πού;
Στις συναρτήσεις που λες ότι περιέχονται σε κάποια κελιά, τι είδους αναφορές χρησιμοποιείς σχετικές, απόλυτες, αναφορές στο ίδιο φύλλο/βιβλίο ή άλλο βιβλίο;

Για δώσε μας τα φώτα σου στα παραπάνω και ένα παράδειγμα για να μπορέσουμε να σε βοηθήσουμε.

Η παρακάτω γραμμή κώδικα
Sheets(1).Copy Before:=Sheets(1)
Δημιουργεί ένα αντίγραφο του πρώτου φύλλου του βιβλίου σου σαν νεο πρώτο φύλλο,
άρα 3 φορές η εκτέλεσή του σου δίνει 3 αντιγραφα του πρώτου φύλλου.

Τα λέμε
Θανάσης
Απάντηση με παράθεση
  #3  
Παλιά 27-01-11, 17:20
Όνομα: Αργύρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2011
Μηνύματα: 4
Προεπιλογή

Φίλε Θανάση

Σου στέλνω σαν συνημμένο αυτο που θέλω να αναπαράγω.

Περιμένω νέα σου

Φιλικά
Αργύρης
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx test.xlsx (12,3 KB, 29 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 27-01-11, 18:32
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 578
Προεπιλογή

Φίλε Αργύρη,
ο παρακάτω κώδικας αντιγράφει (όπως ζήτησες) την περιοχή A5:K18 στο ίδιο φύλλο αρχίζοντας από το κελί Α25 (Δεν μας είπες τον προορισμό οπότε εγώ αυθαίρετα διάλεξα την περιοχή κάτω από τον υπάρχοντα πίνακα), τόσες φορές όσες δείχνει το κελί C3.
Τα περιεχόμενα βέβαια στις στήλες P, R, T και V που περιέχουν οι συναρτήσεις σου, πρέπει να φροντίσεις να περιέχουν τις σωστές τιμές.
Δεν είμαι σίγουρος ότι θα πρέπει να χρησιμοποιήσεις σχετικές αναφορές σε όλες σου τις συναρτήσεις, νομίζω θα πρέπει να τις ξαναδείς.

Κώδικας:
Sub Copy_Table()
Dim src As Range, NofTbls, i As Integer

Set src = Sheets("Φύλλο1").Range("A5:K18")
If WorksheetFunction.IsNumber(Sheets("Φύλλο1").Range("C3").Value) Then
    NofTbls = Sheets("Φύλλο1").Range("C3").Value
    Range("A20:K" & Range("K:K").Rows.Count).Clear
    If NofTbls > 1 Then
        For i = 1 To NofTbls
            src.Copy Destination:=Cells(5 + i * 20, 1)
        Next i
    End If
End If
End Sub
Καλή συνέχεια.
Θανάσης
Απάντηση με παράθεση
  #5  
Παλιά 28-01-11, 12:15
Όνομα: Αργύρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2011
Μηνύματα: 4
Προεπιλογή αναπαραγωγη

Φίλε Θανάση

Σε ευχαριστώ πολύ. Πώς δουλεύει όμως αυτόματα χωρίς να πρέπει να τρέξω την μακροεντολή?

Φιλικά
Αργύρης
Απάντηση με παράθεση
  #6  
Παλιά 28-01-11, 18:10
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 1.328
Προεπιλογή

Αργύρη καλησπέρα!
Μπορείς να δημιουργήσεις ένα κουμπί (στην καρτέλα του προγραμματιστη που μπορείς να εμφανίσεις από τις επιλογές του Excel).
Σε οποιουςδήποτε αυτοματισμούς στο Excel, "ΑΠΑΓΟΡΕΥΟΝΤΑΙ" τα συγχωνευμένα κελιά αφού
ανάλογα τον κώδικα μπορεί να δημιουργήσουν πρόβλημα στις αναφορές περιοχών του φύλλου.

Όπως πολύ καλά είπε και ο Θανάσης βλέποντας τις αναφορές που περιέχει ο πίνακας σου, δεν είναι ξεκάθαρο το τοπίο... αλλά εσύ ξέρεις.

Αν θέλεις δες την πρόταση μου στο συνημμένο παρακάτω.

Φιλικά

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm test.xlsm (20,4 KB, 30 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word

Τελευταία επεξεργασία από το χρήστη Tasos : 28-01-11 στις 18:36.
Απάντηση με παράθεση
  #7  
Παλιά 28-01-11, 20:25
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 578
Προεπιλογή

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

Σε ευχαριστώ πολύ. Πώς δουλεύει όμως αυτόματα χωρίς να πρέπει να τρέξω την μακροεντολή?

Φιλικά
Αργύρης
θα πρέπει να την καλέσεις μέσω του συμβάντος αλλαγής περιεχομένων φύλλου
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
Call Copy_Table
End If
End Sub

Αλλά δεν είμαι καθόλου σίγουρος ότι σου χρειάζεται κάτι τέτοιο.
Νομίζω η λύση που σου πρότεινε ο Τάσος είναι πολύ πιο καλή.

Θανάσης
Απάντηση με παράθεση
  #8  
Παλιά 29-01-11, 10:09
Όνομα: Αργύρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2011
Μηνύματα: 4
Προεπιλογή

Παιδιά ευχαριστώ πολύ

Θα το δουλέψω και αν ξανακολλήσω εδώ είστε!!!

Φιλικά
Αργύρης
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

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

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



Η ώρα είναι 12:16.