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/6051-den-kataxorointai-ta-dedomena-opos-prepei.html)

caudillo 12-02-22 23:36

Δεν καταχωρούνται τα δεδομένα όπως πρέπει
 
1 Συνημμένο(α)
Την καλησπέρα μου σε όλους.
Προσπαθώ να φτιάξω μια φόρμα στο Excel για την καταχώρηση αποδείξεων (όπως γινόταν με κάποια προγράμματα διαφόρων εταιρειών παλιότερα).
Έχω φτιάξει την φόρμα μου, η οποία έχει τρεις σελίδες ώστε ανάλογα με την σελίδα που καταχωρώ δεδομένα, αυτά να περνιούνται στο αντίστοιχο φύλλο εργασίας.
Το πρόβλημα όμως είναι ακριβώς εδώ: τα δεδομένα περνάν στα φύλλα εργασίας μόνο αν πληκτρολογήσω στην πρώτη σελίδα της φόρμας. Αν χρησιμοποιήσω τις άλλες δυο σελίδες δεν αντιγράφεται τίποτα.
Επίσης, ότι πληκτρολογώ στην πρώτη σελίδα της φόρμας περνάει σε όλα τα φύλλα, ενώ θα έπρεπε να αντιγράφεται μόνο στο πρώτο φύλλο. Αντίστοιχα αν πληκτρολογήσω δεδομένα στην δεύτερη ή τρίτη σελίδα της φόρμας, αυτά θα πρέπει να αντιγράφονται μόνο στο δεύτερο ή το τρίτο φύλλο εργασίας.
Προσπάθησα να βρω το λάθος στον κώδικα της φόρμας αλλά δεν τα κατάφερα.
Ανεβάζω το αρχείο ώστε αν κάποιος έχει την διάθεση να βοηθήσει να διορθωθεί ο κώδικας και να δουλέψει σωστά το αρχείο.
Ευχαριστώ πολύ για τον χρόνο σας.

kapetang 13-02-22 14:21

Καλησπέρα

Δες τα σχόλια που πρόσθεσα στον κώδικα:

Κώδικας:

Private Sub CommandButton4_Click()
    'Πρέπει να δηλώνεται κάθε μεταβλητή. Αν δε δηλωθεί θεωρείται Variant
    'Για παράδειγμα οι μεταβλητές wkALPHA, wkPeiraios είναιVariant
    'και όχι Worksheet
   
    Dim wkALPHA, wkPeiraios, wkMetrita As Worksheet
    Dim AddReiceptALPHA, AddReiceptPEIRAIOS, AddMETRITA As Range

    Set wkALPHA = Φύλλο1
    Set wkPeiraios = Φύλλο2
    Set wkMetrita = Φύλλο3

    Set AddReiceptALPHA = wkALPHA.Range("A65356").End(xlUp).Offset(1, 0)
    Set AddReiceptPEIRAIOS = wkPeiraios.Range("A65356").End(xlUp).Offset(1, 0)
    Set AddMETRITA = wkMetrita.Range("A65356").End(xlUp).Offset(1, 0)

    'Τα στοιχεία ελέγχου (ComboBox1, ...,TextBox8) ανήκουν
    'στη σελίδα 1
    AddReiceptALPHA.Offset(0, 0).Value = ComboBox1.Text
    AddReiceptALPHA.Offset(0, 1).Value = TextBox2.Text
    AddReiceptALPHA.Offset(0, 2).Value = TextBox3.Text
    AddReiceptALPHA.Offset(0, 3).Value = TextBox4.Text
    AddReiceptALPHA.Offset(0, 4).Value = TextBox5.Text
    AddReiceptALPHA.Offset(0, 5).Value = TextBox6.Text
    AddReiceptALPHA.Offset(0, 6).Value = TextBox7.Text
    AddReiceptALPHA.Offset(0, 7).Value = TextBox8.Text

    'Τα στοιχεία ελέγχου της 2ης σελίδας δεν ταυτίζονται
    'με αυτά της σελίδας 1. Είναι (ComboBox2, TextBox9, ..., TextBox15
    AddReiceptPEIRAIOS.Offset(0, 0).Value = ComboBox1.Text
    AddReiceptPEIRAIOS.Offset(0, 1).Value = TextBox2.Text
    AddReiceptPEIRAIOS.Offset(0, 2).Value = TextBox3.Text
    AddReiceptPEIRAIOS.Offset(0, 3).Value = TextBox4.Text
    AddReiceptPEIRAIOS.Offset(0, 4).Value = TextBox5.Text
    AddReiceptPEIRAIOS.Offset(0, 5).Value = TextBox6.Text
    AddReiceptPEIRAIOS.Offset(0, 6).Value = TextBox7.Text
    AddReiceptPEIRAIOS.Offset(0, 7).Value = TextBox8.Text

    'Τα στοιχεία ελέγχου της 3ης σελίδας δεν ταυτίζονται
    'με αυτά της σελίδας 1. Είναι (ComboBox3, TextBox16, ..., TextBox22

    AddMETRITA.Offset(0, 0).Value = ComboBox1.Text
    AddMETRITA.Offset(0, 1).Value = TextBox2.Text
    AddMETRITA.Offset(0, 2).Value = TextBox3.Text
    AddMETRITA.Offset(0, 3).Value = TextBox4.Text
    AddMETRITA.Offset(0, 4).Value = TextBox5.Text
    AddMETRITA.Offset(0, 5).Value = TextBox6.Text
    AddMETRITA.Offset(0, 6).Value = TextBox7.Text
    AddMETRITA.Offset(0, 7).Value = TextBox8.Text

End Sub


caudillo 15-02-22 07:34

Καλημέρα Γιώργο.
Σήμερα είδα την απάντησή σου. Εφάρμοσα τα σχόλιά σου και όλα δούλεψαν μια χαρά.
Είχα την εντύπωση πως αντιγράφοντας τα πλαίσια κειμένου και τα combo boxes από την μια σελίδα στην άλλη, αυτά θα παρέμεναν ίδια σε κάθε σελίδα.
Σ' ευχαριστώ πολύ για τον χρόνο σου και για την βοήθειά σου.
Να είσαι καλά.

kapetang 15-02-22 10:32

Να είσαι καλά Κώστα κα καλή συνέχεια.


Η ώρα είναι 04:33.

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


Search Engine Optimization by vBSEO 3.3.2