Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 19-11-11, 03:36
Το avatar του χρήστη gr8styl
gr8styl Ο χρήστης gr8styl δεν είναι συνδεδεμένος
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Καλημέρα καλησπέρα.
Φίλε Σωκράτη αν έχω καταλάβει σωστά το ζητούμενό σου,
ο παρακάτω κώδικας αντιγράφει τα στοιχεία από όλα τα φύλλα του βιβλίου στο φύλλο Sheet1.
Δοκίμασέ το και πες μας αν έγινε.
Ελπίζω να καταφέρεις να τον προσαρμόσεις παραπέρα αν χρειαστεί.

Φιλικά
Θανάσης

Κώδικας:
Option Explicit

Sub test()
Dim DstSheet As String
Dim Sht As Worksheet
Dim R As Long, FirstRow As Long, LastRow As Long
Dim Answer

DstSheet = "Sheet1"

Answer = MsgBox("Do you want to clear " & DstSheet & " ?", vbYesNo)
If Answer = vbYes Then Sheets(DstSheet).Cells.Clear
Application.ScreenUpdating = False
For Each Sht In ThisWorkbook.Sheets
    If Sht.Name <> DstSheet Then
        LastRow = Sheets(DstSheet).Cells(Rows.Count, "A").End(xlUp).Row
        Sheets(DstSheet).Cells(LastRow + 1, "A").Value = "'" & Sht.Name
        Sht.Range("D5").Copy Destination:=Sheets(DstSheet).Cells(LastRow + 1, "B")
        
        For R = 5 To 27 'copy  each cell from range H5:H27 to dstSheet column C
            LastRow = Sheets(DstSheet).Cells(Rows.Count, "D").End(xlUp).Row
            If Sht.Range("H" & R).Value <> "" Then
                Sht.Cells(R, "H").Copy Destination:=Sheets(DstSheet).Cells(LastRow + 1, "C")
                Application.CutCopyMode = False
                Sht.Range("I" & R & ":AB" & R).Copy 'range I5:AB5 to dstSheet column D
                Sheets(DstSheet).Cells(LastRow + 1, "D").PasteSpecial Paste:=xlPasteAll, _
                        Operation:=xlNone, SkipBlanks:=False, Transpose:=True
                
                FirstRow = Sheets(DstSheet).Cells(Rows.Count, "C").End(xlUp).Row
                LastRow = Sheets(DstSheet).Cells(Rows.Count, "D").End(xlUp).Row
                Sheets(DstSheet).Cells(FirstRow, "C").Copy Destination:= _
                        Range("C" & FirstRow & ":C" & LastRow) 'fill down column C
            End If
        Next R
        FirstRow = Sheets(DstSheet).Cells(Rows.Count, "A").End(xlUp).Row
        LastRow = Sheets(DstSheet).Cells(Rows.Count, "D").End(xlUp).Row
        Sheets(DstSheet).Range("A" & FirstRow & ":B" & FirstRow).Copy Destination:= _
            Range("A" & FirstRow & ":B" & LastRow) 'fill down columns A and B
    End If
Next
Application.ScreenUpdating = True
Sheets(DstSheet).Activate
Sheets(DstSheet).Range("A1").Select
MsgBox "Data copied to " & DstSheet & " worksheet.", vbOKOnly
End Sub
Απάντηση με παράθεση