Εμφάνιση ενός μόνο μηνύματος
  #6  
Παλιά 25-11-16, 09:59
Το avatar του χρήστη Spirosgr
Spirosgr Ο χρήστης 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
Προεπιλογή

Το βιβλίο, πρέπει να γίνει .xlsm

Το φύλλο dara μετονομάστηκε Data.
Το φύλλο data Year μετονομάστηκε Data_Year.

Θεωρούμε ότι:
Το Data, δεν αλλάζει δομή αλλά δεδομένα κάθε μήνα.
Το Data_Year δεν αλλάζει δομή αλλά προστίθενται στήλες, κάθε μήνα.
Τα φύλλα, δεν θα αλλάξουν όνομα, ποτέ.

Βάζουμε στο e2 του Data: =E3&E4&E5 και τραβάμε δεξιά, μέχρι στήλη o.
Βάζουμε στο g2 του Data_Year: =G3&G4&G5 και τραβάμε δεξιά, όσο χρειάζεται.

Σε μια module, αντιγράφουμε τον κώδικα:
Κώδικας:
Sub transfer()

    Application.ScreenUpdating = False
    If ActiveSheet.Name <> "Data_Year" Then Sheets("Data_Year").Activate

    Dim lcol1 As Long

    lcol1 = Sheets("Data_Year").Cells(2, Columns.Count).End(xlToLeft).Column

    Dim Rng As Range
    Set Rng = Sheets("Data_Year").Range(Cells(2, 7), Cells(2, lcol1))

    Dim i As Long, comb As String, mtch As Long
    i = 0
    For i = 5 To 9
        comb = Sheets("Data").Cells(2, i)
        If comb <> "" Then
            On Error Resume Next
            mtch = Application.WorksheetFunction.Match(comb, Rng, 0) + 6

            If mtch <> 0 Then

                Dim c As Byte
                For c = 7 To 49

                    If Sheets("Data").Cells(c, i).Value <> "" Then
                        If Not Sheets("Data_Year").Cells(c, mtch).HasFormula Then
                            Sheets("Data_Year").Cells(c, mtch).Value = Sheets("Data").Cells(c, i).Value
                        End If
                    End If

                Next c
            End If
        End If
    Next i

End Sub
1
Ο κώδικας, θα μεταφέρει στην κατάλληλη στήλη, τις τιμές από το Data.
2
Δεν αντιγράφονται κενά κελιά.
3
Δεν μεταβάλλονται, οι τύποι στο Data_Year.
Απάντηση με παράθεση