combobox add item ile seçilene göre işlem yapma

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
merhaba userform initializeye combobox1 additem yöntemiyle a dan z ye kadar harf ekledim. userformu çalıştırınca combobox daki a yi seçince dosya doluyla bulduğum ve sayfasını seçtiğim exelin a sütunundaki verileri seçmesini ve kopyalamasını istiyorum bunun vba formülünü verebilirmisiniz?
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,536
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
1. VBA kodunu UserForm'a ekleyin:

Kod:
Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 65 To 90 ' ASCII kodları A-Z arasında
        ComboBox1.AddItem Chr(i)
    Next i
End Sub

Private Sub ComboBox1_Change()
    If ComboBox1.Value = "A" Then
        Call CopyColumnA
    End If
End Sub

Private Sub CopyColumnA()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim sourceRange As Range

    ' Dosya yolunu ve sayfa adını güncelleyin
    Set wb = Workbooks.Open("C:\DosyaYolu\DosyaAdi.xlsx")
    Set ws = wb.Sheets("SayfaAdi")

    ' A sütunundaki verileri seç ve kopyala
    Set sourceRange = ws.Columns("A")
    sourceRange.Copy

    ' İsteğe bağlı: Kopyalanan veriyi bir başka sayfaya yapıştır
    ' Set ws = ThisWorkbook.Sheets("HedefSayfaAdi")
    ' ws.Range("A1").PasteSpecial Paste:=xlPasteValues

    ' İşlem bittikten sonra çalışma kitabını kapat
    wb.Close SaveChanges:=False
End Sub
2. Kodu UserForm'unuza yapıştırın ve çalıştırın.
Bu kod, UserForm_Initialize olayında ComboBox'a A-Z harflerini ekler. ComboBox1_Change olayında ise "A" harfi seçildiğinde CopyColumnA prosedürü çağrılır. CopyColumnA prosedürü, belirtilen Excel dosyasındaki "A" sütunundaki verileri seçer ve kopyalar.

Dosya eklenmediğinden deneme şansım yok.
 

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
1. VBA kodunu UserForm'a ekleyin:

Kod:
Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 65 To 90 ' ASCII kodları A-Z arasında
        ComboBox1.AddItem Chr(i)
    Next i
End Sub

Private Sub ComboBox1_Change()
    If ComboBox1.Value = "A" Then
        Call CopyColumnA
    End If
End Sub

Private Sub CopyColumnA()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim sourceRange As Range

    ' Dosya yolunu ve sayfa adını güncelleyin
    Set wb = Workbooks.Open("C:\DosyaYolu\DosyaAdi.xlsx")
    Set ws = wb.Sheets("SayfaAdi")

    ' A sütunundaki verileri seç ve kopyala
    Set sourceRange = ws.Columns("A")
    sourceRange.Copy

    ' İsteğe bağlı: Kopyalanan veriyi bir başka sayfaya yapıştır
    ' Set ws = ThisWorkbook.Sheets("HedefSayfaAdi")
    ' ws.Range("A1").PasteSpecial Paste:=xlPasteValues

    ' İşlem bittikten sonra çalışma kitabını kapat
    wb.Close SaveChanges:=False
End Sub
2. Kodu UserForm'unuza yapıştırın ve çalıştırın.
Bu kod, UserForm_Initialize olayında ComboBox'a A-Z harflerini ekler. ComboBox1_Change olayında ise "A" harfi seçildiğinde CopyColumnA prosedürü çağrılır. CopyColumnA prosedürü, belirtilen Excel dosyasındaki "A" sütunundaki verileri seçer ve kopyalar.

Dosya eklenmediğinden deneme şansım yok.
günaydın teşekkürler şimdi deniyorum.
 

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
merhaba resimdeki hatayı alıyorum. daha öncesinde bir buton ile dosya yolu ve sayfayı aşağıdaki formül ile seçtiriyordum bu formüle nasıl bir ekleme yapsak dosya yolunu otomotik bulur? textbox1 de dosya yolu textbox2 de dosyanın adı textbox3 de de sayfanın adı var cems bey.

Private Sub CommandButton1_Click()
Dim fso As Object, ad As Object
Dim dosya As String

ChDir ("C:\")
dosya = Application.GetOpenFilename(filefilter:="Tüm Dosyalar (*.*),*.*", Title:="Bir dosya seçiniz")

' Kullanıcı iptal ederse çık
If dosya = "False" Then Exit Sub

Set fso = CreateObject("Scripting.FileSystemObject")
Set ad = fso.GetFile(dosya)

TextBox3.Value = ad.Name
TextBox2.Value = 1
TextBox1.Text = Left(dosya, Len(dosya) - (Len(ad.Name) + 1))

' Sayfa seçim işlemi
Call SayfayiSec
End Sub
 

Ekli dosyalar

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,536
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Dosya eklenmediğinden deneme şansım yok. Zira surum 2007 ve bahsettiğiniz aracların 2010 da nasıl tepki vereceğinden supheliyim ve 2007 de calısacagından emin olamam. Surumleri daha iyi bilen ya da makinasında olan bir ustad teorik olarak size destek verebilir
 

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
Dosya eklenmediğinden deneme şansım yok. Zira surum 2007 ve bahsettiğiniz aracların 2010 da nasıl tepki vereceğinden supheliyim ve 2007 de calısacagından emin olamam. Surumleri daha iyi bilen ya da makinasında olan bir ustad teorik olarak size destek verebilir
excel sürümüm office365 en güncel lisanslı sürüm hocam şuanda iyi tepki veriyor sizin kodlarınızla bir uyarlama yapmaya çalışıyorum sizden ricam mesela a yı seçince diğer sayfadan a yı kopyalattınız b yi nasıl seçeriz onun formülünü de yazabilirmisiniz lütfen. ben uyarlama yapıyorumda şuan bütün bunları listwievde seçince değil seçtikten sonra bir buton aracılığıyla aktarmayı planlıyorum ona göre ayarlıyorum şuan işime yarıyor kodlarınız
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,536
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Kod:
Private Sub CommandButton1_Click()
    Dim fso As Object, ad As Object
    Dim dosya As String

    ' Dosya seçme penceresini aç
    ChDir ("C:\")
    dosya = Application.GetOpenFilename(filefilter:="Tüm Dosyalar (*.*),*.*", Title:="Bir dosya seçiniz")

    ' Kullanıcı iptal ederse çık
    If dosya = "False" Then Exit Sub

    ' Dosya yolu ve adını al
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ad = fso.GetFile(dosya)

    ' TextBox'lara değerleri yerleştir
    TextBox3.Value = ad.Name ' Dosya adını TextBox3'e yaz
    TextBox2.Value = ad.Extension ' Dosya uzantısını TextBox2'ye yaz
    TextBox1.Text = Left(dosya, Len(dosya) - (Len(ad.Name) + 1)) ' Dosya yolunu TextBox1'e yaz

    ' Sayfa seçim işlemi
    Call SayfayiSec
End Sub
Calısacagından emin degilim. Bu arada surum kaydınızı profilinizden degistirmelisiniz ve 365 yapmalısınız. Yardım etmek isteyen surume bakar
 

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
Kod:
Private Sub CommandButton1_Click()
    Dim fso As Object, ad As Object
    Dim dosya As String

    ' Dosya seçme penceresini aç
    ChDir ("C:\")
    dosya = Application.GetOpenFilename(filefilter:="Tüm Dosyalar (*.*),*.*", Title:="Bir dosya seçiniz")

    ' Kullanıcı iptal ederse çık
    If dosya = "False" Then Exit Sub

    ' Dosya yolu ve adını al
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ad = fso.GetFile(dosya)

    ' TextBox'lara değerleri yerleştir
    TextBox3.Value = ad.Name ' Dosya adını TextBox3'e yaz
    TextBox2.Value = ad.Extension ' Dosya uzantısını TextBox2'ye yaz
    TextBox1.Text = Left(dosya, Len(dosya) - (Len(ad.Name) + 1)) ' Dosya yolunu TextBox1'e yaz

    ' Sayfa seçim işlemi
    Call SayfayiSec
End Sub
Calısacagından emin degilim. Bu arada surum kaydınızı profilinizden degistirmelisiniz ve 365 yapmalısınız. Yardım etmek isteyen surume bakar
Bu nedir hocam anlamadım? profili düzelticem şimdi okey.
ben buton ile b c d e leride kopyalamasını istiyorum bu formül başka sanki
 

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
bu kodlar üzerinde bir ek lazım Set sourceRange = ws.Columns("A") Set sourceRange = ws.Columns("B") gibi comboboxda b yi seçince gelip bu sayfanın b sini kopyalıycak böyle birşey lazım hocam

Private Sub CommandButton2_Click()
Dim wb As Workbook
Dim ws As Worksheet
Dim sourceRange As Range
Dim sourceRange1 As Range

' Dosya yolunu ve sayfa adını güncelleyin
Set wb = Workbooks.Open("C:\Users\ibo\Documents\veri\test.xlsx")
Set ws = wb.Sheets("Sayfa1")

' A sütunundaki verileri seç ve kopyala
Set sourceRange = ws.Columns("A")
Set sourceRange1 = ws.Columns("B")
sourceRange.Copy

' İsteğe bağlı: Kopyalanan veriyi bir başka sayfaya yapıştır
Set ws = ThisWorkbook.Sheets("SATİS")
ws.Range("A1").PasteSpecial Paste:=xlPasteValues

' İşlem bittikten sonra çalışma kitabını kapat
wb.Close SaveChanges:=False
End Sub
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,536
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
ComboBox üzerinden hangi sütunun kopyalanacağını seçmek istiyorsunuz. Bunun için, ComboBox'da A, B gibi seçenekler olduğunda, kullanıcı seçimine göre kopyalanacak sütunu dinamik olarak belirleyebilirsiniz

Kod:
Private Sub CommandButton2_Click()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim sourceRange As Range
    Dim columnLetter As String
  
    ' Dosya yolunu ve sayfa adını güncelleyin
    Set wb = Workbooks.Open("C:\Users\ibo\Documents\veri\test.xlsx")
    Set ws = wb.Sheets("Sayfa1")

    ' ComboBox'tan seçilen değeri al
    columnLetter = ComboBox1.Value ' ComboBox1'deki değer A, B, vb. olmalı
  
    ' Seçilen sütuna göre kopyalanacak aralığı belirle
    Set sourceRange = ws.Columns(columnLetter) ' Örneğin, "A" veya "B" seçildiğinde, ws.Columns("A") veya ws.Columns("B") kopyalanır.
  
    sourceRange.Copy
  
    ' İsteğe bağlı: Kopyalanan veriyi bir başka sayfaya yapıştır
    Set ws = ThisWorkbook.Sheets("SATİS")
    ws.Range("A1").PasteSpecial Paste:=xlPasteValues

    ' İşlem bittikten sonra çalışma kitabını kapat
    wb.Close SaveChanges:=False
End Sub
  • ComboBox1.Value: Bu, ComboBox'ta seçilen değeri alır. Örneğin, kullanıcı "A" seçtiyse, columnLetter değişkeni "A" olacak ve "B" seçildiğinde "B" olacaktır.
  • Set sourceRange = ws.Columns(columnLetter): Burada, ComboBox'tan seçilen değere göre sourceRange dinamik olarak belirlenir. Örneğin, "A" seçildiyse ws.Columns("A") kopyalanır; "B" seçildiyse ws.Columns("B") kopyalanır.
  • PasteSpecial Paste:=xlPasteValues: Kopyalanan veriyi hedef sayfaya sadece değer olarak yapıştırır.

    Bu arada " hoca " dediginiz için tesekkr ederim ancak gercek hocalara ayıp olmasın diye soylemek istedim, ben normal uyelerden biriyim ve exceli burdaki eski toprak hocalardan uzun zaman uye oldugum bu site kanalı ile ogrendim ve işl.erime de cok cok yararı oldu.
 
Son düzenleme:

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
ComboBox üzerinden hangi sütunun kopyalanacağını seçmek istiyorsunuz. Bunun için, ComboBox'da A, B gibi seçenekler olduğunda, kullanıcı seçimine göre kopyalanacak sütunu dinamik olarak belirleyebilirsiniz

Kod:
Private Sub CommandButton2_Click()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim sourceRange As Range
    Dim columnLetter As String
 
    ' Dosya yolunu ve sayfa adını güncelleyin
    Set wb = Workbooks.Open("C:\Users\ibo\Documents\veri\test.xlsx")
    Set ws = wb.Sheets("Sayfa1")

    ' ComboBox'tan seçilen değeri al
    columnLetter = ComboBox1.Value ' ComboBox1'deki değer A, B, vb. olmalı
 
    ' Seçilen sütuna göre kopyalanacak aralığı belirle
    Set sourceRange = ws.Columns(columnLetter) ' Örneğin, "A" veya "B" seçildiğinde, ws.Columns("A") veya ws.Columns("B") kopyalanır.
 
    sourceRange.Copy
 
    ' İsteğe bağlı: Kopyalanan veriyi bir başka sayfaya yapıştır
    Set ws = ThisWorkbook.Sheets("SATİS")
    ws.Range("A1").PasteSpecial Paste:=xlPasteValues

    ' İşlem bittikten sonra çalışma kitabını kapat
    wb.Close SaveChanges:=False
End Sub
  • ComboBox1.Value: Bu, ComboBox'ta seçilen değeri alır. Örneğin, kullanıcı "A" seçtiyse, columnLetter değişkeni "A" olacak ve "B" seçildiğinde "B" olacaktır.
  • Set sourceRange = ws.Columns(columnLetter): Burada, ComboBox'tan seçilen değere göre sourceRange dinamik olarak belirlenir. Örneğin, "A" seçildiyse ws.Columns("A") kopyalanır; "B" seçildiyse ws.Columns("B") kopyalanır.
  • PasteSpecial Paste:=xlPasteValues: Kopyalanan veriyi hedef sayfaya sadece değer olarak yapıştırır.

    Bu arada " hoca " dediginiz için tesekkr ederim ancak gercek hocalara ayıp olmasın diye soylemek istedim, ben normal uyelerden biriyim ve exceli burdaki eski toprak hocalardan uzun zaman uye oldugum bu site kanalı ile ogrendim ve işl.erime de cok cok yararı oldu.
sizi çok iyi anlıyorum ÜSTADIM bende sizin gibiyim yeni başladım hocalar çok kaliteli çok yardımcı oluyolar süper bir site burası ben şahsen çok beğeniyorum yanlız küçük birşeyi atlıyorsunuz sadece a seçildiğinde a, b seçildiğinde b, demiyorum. aşağıdan bir örnek vericem bi bakın tablodan anlıyacağınız gibi ben dosya yoluyla buldugum sayfanın a sını b sini c sini seçip aktarmak istiyorum yani aynı anda hem a hem b hem c yi seçip kopyalamak ve SATİS sayfama yapıştırmak.

Aktar

Alan Adi

Excel Sutunu

Aciklama

 

Barkodu

  
 

Stok Kodu

A

 
 

Birimi 2

B

 
 

Miktarı

  
 

Temel Mik.

  
 

Fiyatı

  
 

Döviz Birimi

  
 

Özel Kodu

  
 

Ek Bilgi 1

  
 

Ek Bilgi 2

  
 

Ek Bilgi 3

  
 

Ek Bilgi 4

  
 

KDV Oranı

  
 

Seri No

  
 

Son Kul.Tarihi (Seri/Lot)

  
 

Özel Kodu (Seri/Lot)

  
 

Açıklama (Seri/Lot)

  
 

Depo Adı

  
 

Cr.İsk.%

  
 

İsk.1 %

  
 

İsk.2 %

  
 

İsk.3 %

  
 

St.Isk.Oran %

  
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,536
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Bende 365 olmadıgından deneme yapamam ama belki bu kodlar konunuzu cozebilir


Kod:
Private Sub CommandButton1_Click()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim targetWs As Worksheet
    Dim sourceRange As Range
    Dim columnList As Variant
    Dim colIndex As Integer
    Dim targetColumn As Integer
    Dim i As Integer

    ' Dosya yolunu ve sayfa adını güncelleyin
    Set wb = Workbooks.Open("C:\DosyaYolu\DosyaAdi.xlsx")
    Set ws = wb.Sheets("SayfaAdi")
    Set targetWs = ThisWorkbook.Sheets("SATİS")

    ' ComboBox'tan seçilen sütunları alalım
    columnList = Split(ComboBox1.Value, ",") ' Sütunları virgülle ayırarak listeyi oluştur

    targetColumn = 1 ' Hedef sayfada ilk sütuna yapıştırmaya başla

    ' Seçilen her bir sütunu kopyalayıp SATİS sayfasına yapıştır
    For i = LBound(columnList) To UBound(columnList)
        colIndex = ColumnLetterToNumber(Trim(columnList(i))) ' A, B, C gibi harfleri sayısal index'e çevir
        Set sourceRange = ws.Columns(colIndex)
        
        ' Kopyalama işlemi
        sourceRange.Copy
        targetWs.Cells(1, targetColumn).PasteSpecial Paste:=xlPasteValues
        targetColumn = targetColumn + 1 ' Sonraki sütuna geç
    Next i

    ' İşlem bittikten sonra dosyayı kapat
    wb.Close SaveChanges:=False
End Sub

' Harfleri sayısal kolona dönüştürmek için fonksiyon
Function ColumnLetterToNumber(colLetter As String) As Integer
    Dim colNum As Integer
    colNum = 0
    For i = 1 To Len(colLetter)
        colNum = colNum * 26 + (Asc(UCase(Mid(colLetter, i, 1))) - 64)
    Next i
    ColumnLetterToNumber = colNum
End Function
Bu çözümle, SANIRIM A, B, C sütunlarını seçip, dışarıdaki dosyadan SATİS sayfasına kopyalayabilirsiniz. Bu işlem, çok daha kolay ve verimli hale gelir, çünkü VBA kodu otomatik olarak bu sütunları kopyalar ve gerektiğinde tekrar kullanılabilir.

SANIRIM diyorum , sonucu denediğiinizde oğrenecegiz ...
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,279
Excel Vers. ve Dili
2019 Türkçe
İlk mesajınızda ComboBoxdan a seçersem a sütunu aktarılsın demişsiniz.
combobox daki a yi seçince dosya doluyla bulduğum ve sayfasını seçtiğim exelin a sütunundaki verileri seçmesini ve kopyalamasını istiyorum
Son mesajınızda a, b, c seçip aktarmak istiyorum demişsiniz.
a seçildiğinde a, b seçildiğinde b, demiyorum. .... ... ... a sını b sini c sini seçip aktarmak istiyorum yani aynı anda hem a hem b hem c yi seçip kopyalamak ve SATİS sayfama yapıştırmak.
Konuyu anlayabilmemiz adına sorunuzu yeniden gözden geçirip sorar mısınız?

Ayrıca şunların da cevabı önemli.
ComboBox 'a harfler eklemek ve bu harfleri seçerek neyi amaçlıyorsunuz?
Verilerin alınacağı dosyanın yeri sabit mi? Eğer sabitse dosya konumunu da söyleyin.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,279
Excel Vers. ve Dili
2019 Türkçe
Ayrıca kopyalanan veriler hangi dosyanın hangi sayfasına ve hangi hücrelerine yapıştırılacak? Bunu da bilmemiz gerekir.
 

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
muzaffer bey cems bey ile çözemezsek bilehare size detaylı olarak yazıcam hocam
 

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
Bende 365 olmadıgından deneme yapamam ama belki bu kodlar konunuzu cozebilir


Kod:
Private Sub CommandButton1_Click()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim targetWs As Worksheet
    Dim sourceRange As Range
    Dim columnList As Variant
    Dim colIndex As Integer
    Dim targetColumn As Integer
    Dim i As Integer

    ' Dosya yolunu ve sayfa adını güncelleyin
    Set wb = Workbooks.Open("C:\DosyaYolu\DosyaAdi.xlsx")
    Set ws = wb.Sheets("SayfaAdi")
    Set targetWs = ThisWorkbook.Sheets("SATİS")

    ' ComboBox'tan seçilen sütunları alalım
    columnList = Split(ComboBox1.Value, ",") ' Sütunları virgülle ayırarak listeyi oluştur

    targetColumn = 1 ' Hedef sayfada ilk sütuna yapıştırmaya başla

    ' Seçilen her bir sütunu kopyalayıp SATİS sayfasına yapıştır
    For i = LBound(columnList) To UBound(columnList)
        colIndex = ColumnLetterToNumber(Trim(columnList(i))) ' A, B, C gibi harfleri sayısal index'e çevir
        Set sourceRange = ws.Columns(colIndex)
       
        ' Kopyalama işlemi
        sourceRange.Copy
        targetWs.Cells(1, targetColumn).PasteSpecial Paste:=xlPasteValues
        targetColumn = targetColumn + 1 ' Sonraki sütuna geç
    Next i

    ' İşlem bittikten sonra dosyayı kapat
    wb.Close SaveChanges:=False
End Sub

' Harfleri sayısal kolona dönüştürmek için fonksiyon
Function ColumnLetterToNumber(colLetter As String) As Integer
    Dim colNum As Integer
    colNum = 0
    For i = 1 To Len(colLetter)
        colNum = colNum * 26 + (Asc(UCase(Mid(colLetter, i, 1))) - 64)
    Next i
    ColumnLetterToNumber = colNum
End Function
Bu çözümle, SANIRIM A, B, C sütunlarını seçip, dışarıdaki dosyadan SATİS sayfasına kopyalayabilirsiniz. Bu işlem, çok daha kolay ve verimli hale gelir, çünkü VBA kodu otomatik olarak bu sütunları kopyalar ve gerektiğinde tekrar kullanılabilir.

SANIRIM diyorum , sonucu denediğiinizde oğrenecegiz ...
hocam kopyalıyor ama getirip SATIŞ a yapıştırmıyor şuan yani az önce fonksiyonları almamıştım aldım şuan hata yok ama kopyaladıklarını yapıştırmıyor sadece
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,536
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın @Muzaffer Ali sitenin uzmanlarından ve destek ekibinden olup kendisinde daha yuksek surum olması ayrıca dikkati çektiği ayrıntıları da verdiğinden ve bende de benzer sorun yaşama devam edeceğinden kendisi ile devam ederek istenen bilgileri vermeniz daha doğru olacaktır. Ben teorik olarak elimden geleni yapmaya çalıştım ancak bir dosya olmadan ilerlemek zor olacak. Dosyayı eklemek istemeyebilirsiiniz ancak mantık olarak da daha önceden tanımlanmamış noktalar var
 

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
Sayın @Muzaffer Ali sitenin uzmanlarından ve destek ekibinden olup kendisinde daha yuksek surum olması ayrıca dikkati çektiği ayrıntıları da verdiğinden ve bende de benzer sorun yaşama devam edeceğinden kendisi ile devam ederek istenen bilgileri vermeniz daha doğru olacaktır. Ben teorik olarak elimden geleni yapmaya çalıştım ancak bir dosya olmadan ilerlemek zor olacak. Dosyayı eklemek istemeyebilirsiiniz ancak mantık olarak da daha önceden tanımlanmamış noktalar var
dosya karışık kafanız karışmasın diye eklemedim üstadım yoksa dosya önemli değil hemen ekliyeyim ben sizin verdiğiniz kodları uyarlıyorum zaten o nedenle dosyaya çoğu zaman ihtiyaç duymuyorum genede ellerine sağlık Allah razı olsun çok teşekkür ederim.
 

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
muzaffer bey merhaba hocam resimde gösterdiğim userformumdaki listwiev burada yapmak istediğimi kısaca özetliyeyim öncelikle verilerin alınacağı yer sabit değil seçimli dosya yolu en üstte manuel seçiliyor gördüğünüz excel sütunundaki A B C dosya yoluyla seçtiğim excelin A B ve C sütunları kullanıcının stok kodu excelindeki a sütunundaysa checkbox u işaretleyecek stok kodunun karşısına çift tıklayıp a yı seçecek bilgileri aktar diyecek kendi excelindeki veriler benim excelimdeki SATIŞ sayfasındaki aynı sütuna gelecek. yanlız check box seçimini de yapamadım hocam onuda eklerseniz çok makbule geçer şimdiden teşekkürler.

dosyayı da gönderdim hocam AKTAR sayfasına bağlı Excelveri userformunda dönüyor olaylar.

 

Ekli dosyalar

bilisim2010

Altın Üye
Katılım
2 Nisan 2011
Mesajlar
147
Excel Vers. ve Dili
office 2007 tr
Altın Üyelik Bitiş Tarihi
17-12-2025
hocam ek olarak bir şeydaha eklemek istiyorum cems beyin aşağıdaki kodlarını checkbox a bağlayıp örnek stok kodu checkboxu seçiliyse A sütunundaki verileri Miktarı seçiliyse C sütunundaki verileri sadece Stok kodu seçiliyse sadece A daki verileri ikiside seçiliyse ikisinin verilerini kopyalayıp SATIŞ sayfasına getirip yapıştırsın da işimi görür.

Private Sub CommandButton2_Click()
Dim wb As Workbook
Dim ws As Worksheet
Dim sourceRange As Range
Dim columnLetter As String

' Dosya yolunu ve sayfa adını güncelleyin
Set wb = Workbooks.Open("C:\Users\ibo\Documents\veri\test.xlsx")
Set ws = wb.Sheets("Sayfa1")

' ComboBox'tan seçilen değeri al
columnLetter = cbGorevler.Value ' ComboBox1'deki değer A, B, vb. olmalı

' Seçilen sütuna göre kopyalanacak aralığı belirle
Set sourceRange = ws.Columns(columnLetter) ' Örneğin, "A" veya "B" seçildiğinde, ws.Columns("A") veya ws.Columns("B") kopyalanır.

sourceRange.Copy

' İsteğe bağlı: Kopyalanan veriyi bir başka sayfaya yapıştır
Set ws = ThisWorkbook.Sheets("SATİS")
ws.Range("A1").PasteSpecial Paste:=xlPasteValues

' İşlem bittikten sonra çalışma kitabını kapat
wb.Close SaveChanges:=False
End Sub
 
Üst