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

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

 

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
Prev Προηγούμενο μήνυμα   Επόμενο Μήνυμα Next
  #8  
Παλιά 02-06-11, 23:14
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Γεια σου Δημήτρη!
Μετονόμασε το φύλλο "ΠΡΟΣΦΟΡΑ" σε "OfferTemplate" και απόκρυψε το.

Κατόπιν στο φύλλο "ΥΠΟΛΟΓΙΣΜΟΣ ΠΡΟΣΦΟΡΑΣ" αντιστοίχησε την ρουτίνα "NewOffer" στον παρακάτω κώδικα σε ένα κουμπί:

Κώδικας:
Option Explicit
Const ilegalChars = ":\/?*[]"

Sub NewOffer()
    Dim rng As Range, Wks As Worksheet, NewWks As Worksheet, _
        xPos As Integer, OfferName As String, SheetName As String
    Application.ScreenUpdating = False
    OfferName = VBA.InputBox("Δώσε Eπωνυμία", "Νέα προσφορά...")
    If StrPtr(OfferName) = 0 Then Exit Sub
    SheetName = CleanName(OfferName)
    xPos = NewSheetPosition(NewName:=SheetName)
    Set Wks = ActiveSheet
    Wks.Range("A:E").AutoFilter Field:=3, Criteria1:=">0", _
                                Operator:=xlAnd

    With ThisWorkbook.Worksheets("OfferTemplate")
        .Visible = xlSheetVisible
        .Copy After:=Sheets(xPos)
        .Visible = xlSheetHidden
    End With
    Set NewWks = ActiveSheet
    Set rng = Wks.AutoFilter.Range.Offset(1)
    rng.Copy
    With NewWks
        .Name = SheetName
        .Range("B1") = OfferName
        .Range("A5").PasteSpecial xlPasteValues
        .Range("A5").Select
    End With
    Wks.AutoFilterMode = False
    Application.CutCopyMode = False

End Sub

Function NewSheetPosition(NewName As String) As Integer
    Dim sh As Object, i As Integer
    For Each sh In ThisWorkbook.Sheets
        If sh.Name = NewName Then
            Application.DisplayAlerts = False
            sh.Delete
            Application.DisplayAlerts = True
        Else
            If sh.Visible Then i = i + 1
        End If
    Next
    NewSheetPosition = i
End Function

Function CleanName(strName As String) As String
    Dim i As Integer, tmpName As String
    tmpName = strName
    For i = 1 To Len(ilegalChars)
        tmpName = Replace(tmpName, Mid(ilegalChars, i, 1), "_")
    Next
    CleanName = tmpName
End Function
Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 03-06-11 στις 09:42.
Απάντηση με παράθεση
 

Ετικέτες
vba, φιλτράρισμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Excel07] ΑΠΟΘΗΚΕΥΣΗ ΜΕΡΟΥΣ ΦΥΛΛΟΥ ΕΡΓΑΣΙΑΣ ΣΕ CVS ΜΕ BUTTON smasak Excel - Ερωτήσεις / Απαντήσεις 8 01-12-15 12:13
[VBA] Δημιουργία Φύλλου Εργασίας με κώδικα othonas Excel - Ερωτήσεις / Απαντήσεις 3 17-05-13 07:14
[Συναρτήσεις] Ενημέρωση μιας λίστας από μια άλλη λίστα ενός άλλου φύλλου εργασίας labpanag Excel - Ερωτήσεις / Απαντήσεις 2 06-12-12 16:14
Διαδρομή βιβλίου / όνομα φύλλου εργασίας σε κελί. Tasos Κείμενο 0 21-09-11 13:34


Η ώρα είναι 19:02.