johnyb98 Δημοσ. 13 Αυγούστου Δημοσ. 13 Αυγούστου Καλησπέρα. Προσπαθώ να βρω τον vb κώδικα σε excel που να κάνει το ακόλουθο: Ας υποθέσουμε ότι σε μία εταιρία υπάρχουν 40 εργαζόμενοι. Έχω φτιάξει ένα αρχείο Excel ως εξής: Έχω 40 worksheets (το κάθε ένα με το επώνυμο τού κάθε εργαζομένου), και στο κάθε worksheet, στο κελί a1 γράφει: ΕΠΩΝΥΜΟ Υπάρχει και ένα ακόμη worksheet (π.χ. ας το ονομάσουμε worksheet-41) που έχω τα επώνυμα των εργαζομένων το ένα κάτω απ' το άλλο: απ' το κελί a1 έως a40. Οπότε, προσπαθώ να βρω τον κώδικα που να πηγαίνει στο worksheet-41 40 φορές (κάθε φορά στο κάθε επώνυμο), και κάθε φορά να αντιγράφει το επώνυμο τού κάθε εργαζομένου στο αντίστοιχο worksheet και στο κελί Α2. Αντί να το κάνω manually, με έναν κώδικα θα γίνει αμέσως. Μπορεί κάτι τέτοιο να γίνει με κώδικα; Ευχαριστώ!
UncleKim Δημοσ. 13 Αυγούστου Δημοσ. 13 Αυγούστου Δοκίμασες να τα "πεις" με το GPT? Κάνει θαύματα, κ μπορεί να σου ετοιμάσει κ το αρχείο! 3
johnyb98 Δημοσ. 13 Αυγούστου Μέλος Δημοσ. 13 Αυγούστου (επεξεργασμένο) Όχι, GPT δεν το σκέφτηκα. Δεν το έχω ξαναδουλέψει. Για να δούμε εάν θα καταφέρω να το ζητήσω. Μέσω GPT δούλεψε. Όχι όπως το έχω στην εκκίνηση. Δεν πάει να διαβάσει από τη λίστα 40, αλλά πάει σε κάθε sheet, και αντιγράφει το όνομα της καρτέλας στο A2. Sub CopySheetNameToA2() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets ws.Range("A2").Value = ws.Name Next ws End Sub Επεξ/σία 13 Αυγούστου από johnyb98
UncleKim Δημοσ. 13 Αυγούστου Δημοσ. 13 Αυγούστου "Διόρθωσε" το και πες του ακριβώς τι να κάνει. Σε εμένα, στις περισσότερες περιπτώσεις μου λύνει τα χέρια. Αν δεν το κάνει 100% όπως το θέλω, το φτάνει πολύ κοντά και μετά είναι εύκολο να το παραμετροποιήσεις.
johnyb98 Δημοσ. 13 Αυγούστου Μέλος Δημοσ. 13 Αυγούστου Απ' ό,τι κοίταξα παραπλήσιους κώδικες, πρέπει να θέλει αρκετή παραμετροποίηση: με αρκετό κώδικα, μεταβλητές. Θα το προσπαθήσω (όπως προτείνεις), και εάν τα καταφέρω, θα ανεβάσω πάλι τον κώδικα όπως τον θέλω.
masteripper Δημοσ. 13 Αυγούστου Δημοσ. 13 Αυγούστου Κοτζαμ εταιρεία με 40 νοματαιους και ασχολείστε με μπακαλοτεφτερα σε Excel... 40 φύλλα.. μόλις βάλεις κάτι παραπάνω μέσα θα χαθεί η μπάλα.... θες μια βάση φίλε μου,να γίνει σωστή η δουλειά. Αν θες το συζητάμε με μήνυμα
ChrisGT7 Δημοσ. 17 Αυγούστου Δημοσ. 17 Αυγούστου Καλημέρα σας, Στο φύλλο worksheet-41 δοκίμασε τον παρακάτω κώδικα, αν σε διευκολύνει: Option Explicit Sub ERGAZOMENOI() Dim I As Byte, R As Byte, Sht As Worksheet R = Range("A" & Rows.Count).End(xlUp).Row For I = 1 To R For Each Sht In ThisWorkbook.Worksheets If Sht.Name = Range("A" & I).Value Then Sht.[A2] = Range("A" & I).Value Exit For End If Next Next End Sub Ο παραπάνω κώδικας διαβάζει ένα-ένα τα φύλλα εργασίας κι αν βρει φύλλο με όνομα ίδιο με την τιμή του κελιού π.χ. Α5 στο worksheet-41, γράφει στο Α2 αυτό που βρίσκεται στο Α5. Μ' αυτόν τον τρόπο, προφανώς και δεν μπορεί να υπάρχει συνωνυμία μεταξύ εργαζομένων, γιατί φύλλα εργασίας δεν μπορούν να έχουν το ίδιο όνομα. Όπως αναφέρθηκε, το να υπάρχει ένα φύλλο για κάθε εργαζόμενο , δεν είναι η καλύτερη και αποδοτικότερη λύση... Τουλάχιστον στο φύλλο που έχεις τους εργαζόμενους, βάλε σε κάθε όνομά τους σύνδεσμο για να μεταφέρεσαι απευθείας στο αντίστοιχο φύλλο του, κάτι σαν πίνακας περιεχομένων. Αν χρειάζεσαι περισσότερη βοήθεια για βελτιώσεις, αναφέρεις τι ακριβώς χρειάζεσαι.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα