Σωτήρη καλώς όρισες στο 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 προς το κελί αφετηρία
Τέλος πολύ σημαντικό
αφού δεις τι κάνει ο κώδικας μεταφέροντας μια ολόκληρη γραμμή στην θέση της
θα πρέπει να
αλλάξεις τους αριθμούς γραμμών του προορισμού με μια
μεταβλητή
που θα βρίσκει την πρώτη κενή γραμμή στο πελατολόγιο.