Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Δημιουργία φόρμας (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/3703-dimioyrgia-formas.html)

Spirosgr 02-06-15 16:36

1 Συνημμένο(α)
Χωρίς να αναλύσουμε κάτι άλλο για τους κώδικες,
ο κώδικας που ακολουθεί, ανοίγει (κατ' επιλογή) τρεις φόρμες:

UserForm1, UserForm2, UserForm3
Η ενεργοποίηση της κάθε φόρμας, γίνεται με κλικ στα κελιά a1, a2, a3 της πρώτης (Α) στήλης,
του φύλλου που θα τον αντιγράψουμε.

Κώδικας:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    If Target.Columns.Count > 1 Then Exit Sub
    If Target.Rows.Count > 1 Then Exit Sub
   
    If Target.Row = 1 Then UserForm1.Show
    If Target.Row = 2 Then UserForm2.Show
    If Target.Row = 3 Then UserForm3.Show
End Sub

Είναι φτιαγμένος, με τέτοιο τρόπο, ώστε να μπορεί κανείς, να προσθέσει κι άλλες φόρμες
αν θέλει και να βάλει σε αυτόν, νέες γραμμές, όπως η (If Target.Row = 1 Then UserForm1.Show)
αντικαθιστώντας πχ το 1 με 7 και το UserForm1 με UserForm(x)
για να ανοίξει, από το a7, μια νέα φόρμα, με όνομα UserForm(x).

Παράδειγμα, στο βιβλίο που ακολουθεί.

alterna 10-06-15 21:10

Ευχαριστώ για τις πολύτιμες οδηγίες σου.
Έχω προχωρήσει αρκετά το σχέδιο μου αλλά έχω το εξής πρόβλημα.
Στο φύλλο 1 έχω 4 command buttons τα οποία όταν επιλεγούν ανοίγει η κάθε φόρμα που έχω στα υπόλοιπα 4 φύλλα.
Ως εδώ όλα καλά.
Με την καταχώρηση όμως των δεδομένων στην κάθε φόρμα τα δεδομένα καταχωρούνται στο πρώτο φύλλο ενώ θέλω πατώντας πχ το command 1 να ανοίγει η φόρμα 1 και τα δεδομένα να καταχωρούνται στο φύλλο 2 ,με το command 2 να ανοίγει η φόρμα 2 και να καταχωρούνται στο φύλλο 3 κλπ.
Είναι μεγάλο το αρχείο για να το βάλω συνημμένο.

Spirosgr 10-06-15 23:03

Καλησπέρα
Επειδή με τη VBA, δεν μπορούμε να μιλάμε υποθετικά ή στο περίπου, κάνε ένα παραδειγματικό αρχείο, να δούμε τι κώδικες έχεις βάλει και πως λειτουργούν.
Αν κατάλαβα καλά το πρόβλημα σου, μπορείς να το λύσεις, «αναφέροντας» τα φύλλα που πρέπει να πάει κάθε καταχώρηση, μέσω της φόρμας
(από TextBox για παράδειγμα).

Παράδειγμα:

Κώδικας:

Sheet1.Cells(1,2).Value = Me.TextBox1.Value    ή
Sheet3.Range("b15").Value = Me.TextBox5.Value

χωρίς να γνωρίζω βέβαια, τι controls έχεις στην φόρμα και πως τα χρησιμοποιείς.


Η ώρα είναι 13:39.

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


Search Engine Optimization by vBSEO 3.3.2