Προς το περιεχόμενο

[Excel] Αυτόματη αντιγραφή κελιών σε άλλο φύλλο


Spect~

Προτεινόμενες αναρτήσεις

  • Moderators

Χαιρετώ το εδω τμήμα του φόρουμ. Θα μπω απευθείας στο ψητό. Εχω ενα εξελ για ελεγχο ταμείου και θέλω με κάποιο τρόπο να αντιγράφονται κάποια κελια σε ένα άλλο φυλλο. Πιο συγκεκριμένα θέλω οταν προστίθεται κάτι στις εισπράξεις της δευτερης φωτογραφιας να αντιγράφεται με κάποιο τρόπο στα έσοδα της πρωτης φωτογραφίας και αντίστοιχα το ιδιο για τα εξοδα. Το αρχειο εχει 13 φυλλα, ενα για καθε μηνα και ενα το συνολικο. Κάθε φύλλο έχει 28-31 τέτοια "πινακάκια" ενα για κάθε μέρα. Θελω ουσιαστικα στο τελευταιο φυλλο να έχω ολες τις κινήσεις εσόδων και εξόδων μαζεμενες. Καμια ιδέα πως να το προσεγγισω; ΓΙα VBA σκεφτομουν να το βάλω κατα την αποθηκευση να κοιταει ποια ημέρα έχει γίνει τελευταια εγγραφή και να κοιταω απο εκεινη την ημερα μεχρι και την σημερινη τι κινησεις εχουν γινει και να τις περναει.. Υπαρχει τρόπος να γλιτωσω το VBA?

2.JPG

Capture.JPG

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 34
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ. (επεξεργασμένο)

Όπως το κάνεις για το ίδιο φύλλο θα το κάνεις και τώρα απλά μπροστά θα βάλεις το φύλλο

πχ Tabelle2!C8 Το ταβελε2 είναι το φύλλο και το c8  το κελί

Επεξ/σία από k33theod
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
10 λεπτά πριν, k33theod είπε

Όπως το κάνεις για το ίδιο φύλλο θα το κάνεις και τώρα απλά μπροστά θα βάλεις το φύλλο

πχ Tabelle2!C8 Το ταβελε1 είναι το φύλλο και το c8  το κελί

Το θεμα ειναι οτι θα πρεπει να γινεται αυτοματα. Σιγουρα ολοι οι πινακες σε ενα μηνα δεν θα εχουν δεδομενα. Επίσης μπορει να προστεθουν γραμμες σε ενα πινακα κλπ και γενικα θα πρεπει η μια γραμη να ειναι κατω απο την αλλη οποτε δεν γινεται απλα να παω να του πω βαλε σε αυτο το κελι οτι βαζεις και στο διπλα φυλλο σε εκεινο το κελι

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Δεν μπορώ να καταλάβω το πρόβλημα όπότε δεν μπορώ να βοηθήσω.  Αν μπορείς να το εκφράσεις διαφορετικά με ένα παράδειγμα ή αλγεβρικά ή να ανεβάσεις κάπως το excel και να πεις ακριβώς που είναι το πρόβλημα

Α οκ το διάβασα ξανά και ξανα και κατάλαβα τι περίπου θες.

Επεξ/σία από k33theod
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Βλεπεις το εξελ τα φυλλα που εχει καθως και τους πινακες ανα ημερα. Θελω Στο φυλλο "Συνολο" που  εχει ΕΣΟΔΑ-ΕΞΟΔΑ να αντιγραφεται αυτοματα οτι στοιχεια υπαρχουν στους πινακες. Δες τις φωτογραφιες για να καταλαβεις. Το θεμα ειναι να γινεται αυτοματα. Για την ωρα εχω φτιαξει τις λουπες για να πηγαινει σε ολα τα φυλλα και να βρισκει ολες τις ημερομηνιες και να σταματαει εαν φτασει στην σημερινη μερα. Τωρα πρεπει να φτιαξω τη λουπα που θα κοιταω μεσα στον πιανακα και να κανει την αντιγραφη.

Capture.JPG

Capture1.JPG

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι φαίνεται περίπλοκο.  Δυστηχώς δεν μπορώ να βοηθήσω.

Σκέψου ίσως μελλοντικά να το αντικαταστήσεις με μία databank.

Mία άλλη σκέψη είναι η τήρηση μόνο δύο πινάκων έσοδα έξοδα και με φίλτρο την ημερομηνία μπορείς να πάρεις τα ημερήσια ή ότι άλλο θες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
2 ώρες πριν, k33theod είπε

Ναι φαίνεται περίπλοκο.  Δυστηχώς δεν μπορώ να βοηθήσω.

Σκέψου ίσως μελλοντικά να το αντικαταστήσεις με μία databank.

Mία άλλη σκέψη είναι η τήρηση μόνο δύο πινάκων έσοδα έξοδα και με φίλτρο την ημερομηνία μπορείς να πάρεις τα ημερήσια ή ότι άλλο θες.

Για δώσε πληροφορίες για data bank. 

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

Κοίτα επειδή η δομή είναι στάνταρ αυτό που πρέπει να κάνω τώρα είναι να βρίσκω κάθε φορά τα όρια των εισπράξεων και των πληρωμών και με βάση αυτά να κάνω ότι είναι. Έχεις πολλές επαναλήψεις και εκεί θα γίνει ένας χαμός αλλά νταξει. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Databank εννοώ ότι να είναι. Εγώ είμαι υπερ mysql για διάφορους λόγους αλλά και access, psql, sqlite3 όλα κατά τη γνώμη μου θα ήταν καλύτερα από excel.  

Το κάνεις τώρα με VB φαντάζομαι καλή τύχη :)

 

 

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
1 ώρα πριν, k33theod είπε

Databank εννοώ ότι να είναι. Εγώ είμαι υπερ mysql για διάφορους λόγους αλλά και access, psql, sqlite3 όλα κατά τη γνώμη μου θα ήταν καλύτερα από excel.  

Το κάνεις τώρα με VB φαντάζομαι καλή τύχη :)

 

 

 

 

Παμε σε εξτριμ πραγματα για αυτους που το χρησιμοποιουν οποτε αστο. Ναι εχουμε 2022 και ακομη δεν ξερουν να δουλευουν

55 λεπτά πριν, virxen75 είπε

όλες οι μέρες είναι σε ένα φύλλο?

ναι. Ενα φυλλο για καθε μηνα οπου καθε φυλλο εχει 28,30 ή 31 πινακακια που καθε ενα πινακακι ειναι μια μερα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Γιατί μου φαίνεται λίγο βασανιστήριο όλο αυτό με όλο το άπλωμα των ημερών που θα γίνεται στο φύλλο του κάθε μήνα? Το πάλεψες καθόλου με καμιά access ή κάποια βάση δεδομένων όπως είπε ο @k33theod

Αν θες να συνεχίσεις στο excel, πιστεύω πιο πολύ θα βολευτείς να δουλέψεις με φίλτρα, όπως επίσης πρότεινε ο @k33theod .

Επεξ/σία από iphotographer
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
10 λεπτά πριν, iphotographer είπε

Γιατί μου φαίνεται λίγο βασανιστήριο όλο αυτό με όλο το άπλωμα των ημερών που θα γίνεται στο φύλλο του κάθε μήνα? Το πάλεψες καθόλου με καμιά access ή κάποια βάση δεδομένων όπως είπε ο @k33theod

Αν θες να συνεχίσεις στο excel, πιστεύω πιο πολύ θα βολευτείς να δουλέψεις με φίλτρα, όπως επίσης πρότεινε ο @k33theod .

Γιατί είναι.. Δεν είναι στο χέρι μου δυστυχώς και το θέλουν έτσι. 

Θέλουν να έχουν εύκολη (για αυτούς) εικόνα ημερήσια και με τον λιγότερο δυνατό κόπο. 

Ειμαι σε καλό δρόμο. Εφόσον έχω βγάλει άκρη σε ένα μεγάλο βαθμό για να βρίσκω τα range σε αυτά που θέλω να ψάχνω τώρα μένει να φτιάξω τις τελικές επαναλήψεις που θα ελέγχουν για  δεδομένα και θα τα αντιγράφουν. Δηλαδη θέλω 2 3 λούπες και κάμποσες if. Θα βγει που θα πάει.. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

24 λεπτά πριν, Spect~ είπε

Ειμαι σε καλό δρόμο. Εφόσον έχω βγάλει άκρη σε ένα μεγάλο βαθμό για να βρίσκω τα range σε αυτά που θέλω να ψάχνω τώρα μένει να φτιάξω τις τελικές επαναλήψεις που θα ελέγχουν για  δεδομένα και θα τα αντιγράφουν. Δηλαδη θέλω 2 3 λούπες και κάμποσες if. Θα βγει που θα πάει.. 

Απλά όταν κάτι είναι περίπλοκο η πιθανότητα να γίνει μ@κια είναι εκθετική καθώ επίσης και η δυσκολία μετά να βρεις το λάθος. Δεν λέω να πας κόντρα στον πελάτη γιατί πάντα έχει δίκιο απλά σκέψου μήπως υπάρχει άλλος τρόπος με το excel πάλι.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

για αρχή θέλεις κάτι τέτοιο για να αρχικοποιήσεις την τελική έξοδο

Sub putLabels()
    Sheet2.Cells.Clear 'clears all sheet from data
    Sheet2.Cells(1, 1).Value = "esoda"
    Sheet2.Cells(2, 1).Value = "date"
    Sheet2.Cells(2, 2).Value = "description"
    Sheet2.Cells(2, 3).Value = "poso"
    Sheet2.Cells(2, 4).Value = "tipos"
    Sheet2.Cells(2, 5).Value = "parastatiko"
    Sheet2.Cells(1, 7).Value = "eksoda"
    Sheet2.Cells(2, 7).Value = "date"
    Sheet2.Cells(2, 8).Value = "description"
    Sheet2.Cells(2, 9).Value = "poso"
    Sheet2.Cells(2, 10).Value = "tipos"
    Sheet2.Cells(2, 11).Value = "parastatiko"
End Sub

και μετά έναν υπολογισμό π.χ.

Sub test()
Dim col, i, row, destRow, destRow2 As Integer
Dim dateTable As String
Dim monthNames
monthNames = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
col = 200
i = 1
destRow = 2
destRow2 = 2
Call putLabels
While col <> 0
    If Len(Sheet1.Cells(1, i).Value) >= 8 Then
      col = i
      dateTable = DatePart("d", Sheet1.Cells(1, col)) & "-" & monthNames(Val(DatePart("m", Sheet1.Cells(1, col))) - 1)
      row = 4
      While Sheet1.Cells(row, col + 1).Interior.ColorIndex < 0
      
        If Sheet1.Cells(row, col).Value <> "" Then
            destRow = destRow + 1
            Sheet2.Cells(destRow, 1).Value = dateTable
            Sheet2.Cells(destRow, 2).Value = Sheet1.Cells(row, col).Value
            Sheet2.Cells(destRow, 3).Value = WorksheetFunction.Max(Sheet1.Cells(row, col + 1).Value, Sheet1.Cells(row, col + 2).Value, Sheet1.Cells(row, col + 3).Value, Sheet1.Cells(row, col + 4).Value)
        End If
      row = row + 1
      Wend
      While Sheet1.Cells(row, col).Interior.ColorIndex < 0
        row = row + 1
      Wend
      row = row + 1
      While Sheet1.Cells(row + 1, col + 1).Interior.ColorIndex < 0
      
        If Sheet1.Cells(row, col).Value <> "" Then
            destRow2 = destRow2 + 1
            Sheet2.Cells(destRow2, 7).Value = dateTable
            Sheet2.Cells(destRow2, 8).Value = Sheet1.Cells(row, col).Value
            Sheet2.Cells(destRow2, 9).Value = WorksheetFunction.Max(Sheet1.Cells(row, col + 1).Value, Sheet1.Cells(row, col + 2).Value, Sheet1.Cells(row, col + 3).Value, Sheet1.Cells(row, col + 4).Value)
        End If
      row = row + 1
      Wend
      
    Else
        col = 0
    End If
    i = i + 6
Wend

test tables.xlsm

Επεξ/σία από virxen75
  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δοκίμασες να το πας ανάποδα, να κάνεις όλες τις εγγραφές στο συγκεντρωτικό και τις αντιγραφές στα πινακάκια; Νομίζω πως είναι πιο απλός τρόπος.

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...