Excel İçerik Kopyalama Makrosu

Katılım
5 Nisan 2024
Mesajlar
11
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2401)
Arkadaşlar merhaba Excelde bir tablom var şu şekilde;



Yukarıda ki tabloda "Yaka Kartı Bilgileri" altında ki bilgileri bir türlü aşağıda ki görüntüye çeviremedim. Ancak şöyle oluyor içeriği kopyalarsam eğer ayırıyor bilgileri ona okey ama veri çok fazla olduğunda bu kopyala yapıştıra giriyor. Makro olarak kopyala yapıştır yapıyorum ama hücreyi komple kopyalıyor makroda içeriği kopyalamayı bulamadım.

İşin özü sonunda yapmayı istediğim form çıktısı aşağıda ki gibidir var mı yardım edebilecek :/

 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,260
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
örnek dosyanızı (bir kaç satırlık) paylaşım sitelerinden birine yüklerseniz, ve olması gerekeni de belirtirseniz yanıt almanız daha hızlı olacaktır.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,260
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Farklı çözümler üretilebilinir.
Aşağıdaki kodları deneyiniz.
Veriler Veri sayfasında, düzenlenmiş hali Liste sayfasında olmalı.
Bu iki sayfanın olması gerekir.

Kod:
Sub Duzenle()

Dim arV As Variant
Dim arL As Variant
Dim ar1 As Variant
Dim ar2 As Variant
Dim shV As Worksheet
Dim shL As Worksheet

Dim i   As Long
Dim j   As Long
Dim k   As Integer

Set shV = Sheets("Veri")
Set shL = Sheets("Liste")

On Error Resume Next
Application.ScreenUpdating = False

shL.Cells.ClearContents
shL.Range("A1").Resize(1, 3) = Array("GALERİ ADI", "ADI SOYADI", "GÖREVİ")

arV = shV.Range("A1").CurrentRegion.Value
j = 2
For i = 2 To UBound(arV, 1)
    ar1 = Split(arV(i, 2), Chr(10))
    shL.Cells(j, "A") = arV(i, 1)
    For k = 1 To UBound(ar1)
        shL.Cells(j, "A") = BKH(CStr(arV(i, 1)))
        shL.Cells(j, "B") = BKH(CStr(Split(ar1(k), " | ")(0)))
        shL.Cells(j, "C") = BKH(CStr(Split(ar1(k), " | ")(1)))
        j = j + 1
    Next k
Next i

Application.ScreenUpdating = True

MsgBox "Listeleme Bitmiştir...."

End Sub
Kod:
Function BKH(Sozcuk As String, Optional Tip As Integer = 2) As String

    'Tip    1. Küçük Harf
    '       2. Büyük Harf
    '       3. Yazım Düzeni
    
    If Tip = 1 Then
        BKH = Evaluate("=LOWER(" & """" & Sozcuk & """" & ")")
    ElseIf Tip = 2 Then
        BKH = Evaluate("=UPPER(" & """" & Sozcuk & """" & ")")
    Else
        BKH = Application.WorksheetFunction.Proper(Sozcuk)
    End If
    
End Function
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Örnek dosyanızı farklı bir platforma yükleyebilirmisiniz. Ben paylaştığınız linkten erişemedim.
 
Katılım
5 Nisan 2024
Mesajlar
11
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2401)
Merhaba,
Farklı çözümler üretilebilinir.
Aşağıdaki kodları deneyiniz.
Veriler Veri sayfasında, düzenlenmiş hali Liste sayfasında olmalı.
Bu iki sayfanın olması gerekir.

Kod:
Sub Duzenle()

Dim arV As Variant
Dim arL As Variant
Dim ar1 As Variant
Dim ar2 As Variant
Dim shV As Worksheet
Dim shL As Worksheet

Dim i   As Long
Dim j   As Long
Dim k   As Integer

Set shV = Sheets("Veri")
Set shL = Sheets("Liste")

On Error Resume Next
Application.ScreenUpdating = False

shL.Cells.ClearContents
shL.Range("A1").Resize(1, 3) = Array("GALERİ ADI", "ADI SOYADI", "GÖREVİ")

arV = shV.Range("A1").CurrentRegion.Value
j = 2
For i = 2 To UBound(arV, 1)
    ar1 = Split(arV(i, 2), Chr(10))
    shL.Cells(j, "A") = arV(i, 1)
    For k = 1 To UBound(ar1)
        shL.Cells(j, "A") = arV(i, 1)
        shL.Cells(j, "B") = Split(ar1(k), " | ")(0)
        shL.Cells(j, "C") = Split(ar1(k), " | ")(1)
        j = j + 1
    Next k
Next i

Application.ScreenUpdating = True

MsgBox "Listeleme Bitmiştir...."

End Sub

Gerçekten çok teşekkür ederim, listeye gönderilen ad soyad olsun görevi olsun bunları otomatik harflerini de büyütebilir miyiz?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formülle çözüm üretebilmek adına farklı bir platformda paylaşabilirmisiniz.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,260
Excel Vers. ve Dili
Ofis 365 Türkçe
Gerçekten çok teşekkür ederim, listeye gönderilen ad soyad olsun görevi olsun bunları otomatik harflerini de büyütebilir miyiz?
Neden olmasın? :)

4 Nolu mesajı günledim, kodları oradan alınız.
 
Son düzenleme:
Katılım
5 Nisan 2024
Mesajlar
11
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2401)
Neden olmasın? :)

4 Nolu mesajı günledim, kodları oradan alınız.
Teşekkür ederim hemen deneyeceğim. :)

Formülle çözüm üretebilmek adına farklı bir platformda paylaşabilirmisiniz.
https://s6.dosya.tc/server19/y46b1f/PATIKA_YAKA_KARTI_teslim.xlsx.html Bu olmasını istediğim şekil.

https://s6.dosya.tc/server19/y46b1f/katalog-basvuru-formu-tr-5-2024-05-07__1_.xlsx.html Buda düzeltilmemiş hali, ilginize hayran kaldım. Formlarda normalde3-5 güne gelir cevaplar veya hiç gelmez teşekkür ederim sizlere.. :)
 
Katılım
5 Nisan 2024
Mesajlar
11
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2401)
Denedim fakat olmadı
 
Üst