Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Γενικά] Φόρμα και μεταφορά δεδομένων σε άλλο φύλλο

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 19-01-17, 08:46
Όνομα: ΣΩΤΗΡΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 18-01-2017
Μηνύματα: 3
Προεπιλογή Φόρμα και μεταφορά δεδομένων σε άλλο φύλλο

Καλημέρα σας και ευχαριστώ εκ των προτέρων για την αποδοχή.

Έχω λοιπόν δημιουργήσει μια φόρμα την οποία συμπληρώνω και μου βγάζει μια προσφορά για τον πελάτη μου(έχω βάλει τις κατάλληλες συναρτήσεις και παίρνω τα αποτελέσματα που θέλω). Αυτό που θέλω να κάνω είναι αυτά που θα συμπληρώνω στην φόρμα να περνάνε αυτόματα σε ένα άλλο φύλλο και έτσι να δημιουργείται το πελατολόγιο. Πάνω κάτω έχω βρεί πως να πέρναω ενα δεδομένο αλλά εγω θέλω να περνάνε όλα τα στοιχεία της φόρμας και φυσικά να αποθηκεύονται μιας και η φόρμα ανανεώνετε συνέχεια.
Απάντηση με παράθεση
  #2  
Παλιά 19-01-17, 14:43
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Σωτήρη καλώς όρισες στο ms-office.gr

Έστω λοιπόν, ότι το θέμα:
http://www.ms-office.gr/forum/excel-...-se-forma.html
είναι παρόμοιο με το ζητούμενό σου.

Αν έχεις μια φόρμα, της μορφής (βλέπε εικόνα) τότε:

Θα χρησιμοποιήσεις ένα κελί, πχ C2, ως «κουμπί» και θα εκτελεί κώδικα, με διπλό κλικ επάνω του.

Στο φύλλο της φόρμας, θα αντιγράψεις τον κώδικα:

Κώδικας:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

'Αν το διπλό κλικ δεν είναι στο κελί = ΕΞΟΔΟΣ

    If Target.Column <> 3 Then Exit Sub
    If Target.Row <> 2 Then Exit Sub

    'Το κελί προορισμού στο φύλλο Πελατολόγιο = με το κατάλληλο κελί της φόρμας.

    Sh2.Cells(2, 11).Value = Target.Offset(4, 1).Value

    'αν θέλουμε μετάβαση στο φύλλο Πελατολόγιο (αλλιώς διαγράφουμε την μπλέ γραμμή)
    Sh2.Activate

    Cancel = True
End Sub
Η γραμμή με το κόκκινο, «λέει»
Πήγαινε στο πελατολόγιο, και βάλε στο Κ2 το κελί που έχει την διεύθυνση του πελάτη (φόρμα)

Θα επαναλάβεις όσες φορές χρειάζεσαι την γραμμή.
Για όσα δηλαδή κελιά θέλεις να μεταφερθούν.

Προσέχεις τα εξής:
Όπου Sh2. θα βάλεις το κωδικό όνομα του πραγματικού φύλλου πελατολόγιο.
Το πρώτο μέρος της ισότητας είναι ο προορισμός.
Το δεύτερο η αφετηρία.
Στις παρενθέσεις, πρώτα γραμμή μετά στήλη (πχ 2,4 = κελίD2)

Το Offset, κατά τα γνωστά από το κελί C2 προς το κελί αφετηρία

Τέλος πολύ σημαντικό
αφού δεις τι κάνει ο κώδικας μεταφέροντας μια ολόκληρη γραμμή στην θέση της
θα πρέπει να αλλάξεις τους αριθμούς γραμμών του προορισμού με μια μεταβλητή
που θα βρίσκει την πρώτη κενή γραμμή στο πελατολόγιο.
Συνημμένα Thumbnails
Φόρμα και μεταφορά δεδομένων σε άλλο φύλλο-screenshot_1.png  
Απάντηση με παράθεση
  #3  
Παλιά 20-01-17, 13:42
Όνομα: ΣΩΤΗΡΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 18-01-2017
Μηνύματα: 3
Προεπιλογή

Σε ευχαριστώ για την απάντηση με βοήθησε να το καταλάβω.
Η συνάρτηση που μου είπατε για αλλαγή γραμμής ποια είναι?
Απάντηση με παράθεση
  #4  
Παλιά 20-01-17, 14:21
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Αφού λοιπόν, «έχουμε» τον μηχανισμό, θα βάλεις την έκφραση (όχι συνάρτηση):

Dim NextRow As Long
NextRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row + 1

Η έκφραση αυτή, «δίνει» στην μεταβλητή NextRow, την πρώτη διαθέσιμη κενή γραμμή.

Θα πρέπει να την βάλεις στον κώδικα, πριν γίνει χρήση του NextRow.
Αν δεν συντρέχουν άλλοι λόγοι, μπορεί να μπεί αμέσως μετά το
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Όπου:
Sheet1 = κωδικό όνομα φύλλου (πελατολόγιο)
Rows.Count, 1 = το 1 είναι η στήλη Α. Θα το αλλάξεις, με πραγματική στήλη
η οποία θα έχει πάντα τις απαιτούμενες γραμμές, για να σε καλύπτει.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Excel07] Μεταφορά δεδομένων από ένα φύλλο σε άλλο με προϋποθέσεις agrbita Excel - Ερωτήσεις / Απαντήσεις 4 15-01-17 22:33
[VBA] Μεταφορά δεδομένων σε άλλο φύλλο Χρήστος Excel - Ερωτήσεις / Απαντήσεις 1 14-10-16 12:43
[Excel07] Μεταφορά δεδομένων σε άλλο φύλλο rania1984 Excel - Ερωτήσεις / Απαντήσεις 3 25-09-14 14:17
[Excel07] Με ένα πάτημα μεταφορά δεδομένων σε άλλο φύλλο ggatzos Excel - Ερωτήσεις / Απαντήσεις 0 10-07-13 23:36
[Συναρτήσεις] Μεταφορά δεδομένων σε άλλο φύλλο xristos Excel - Ερωτήσεις / Απαντήσεις 16 01-11-11 08:21


Η ώρα είναι 10:15.