• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

link ile combobox değerini değiştirme

  • Konbuyu başlatan Konbuyu başlatan nkapsal
  • Başlangıç tarihi Başlangıç tarihi
Katılım
13 Eylül 2007
Mesajlar
5
Excel Vers. ve Dili
excel 2002
Merhaba Arkadaşlar,
firmalara ait faturaların bulunduğu bir liste ile çalışıyorum. bir sheet te faturaların tümü, diğer bir sheet te ise combobox ile fatura numarasını seçerek fatura detaylarını görüyorum. yapmak istediğim ise bu sheet lerden farklı bir sayfadada bir firmaya ait faturaları döküp bu faturaların numaralarına link vermek. link verebiliyorum ama bu linke tıklandığı zaman fatura sayfamdaki combobox ın değerini değiştimek istiyorum.

yani a sayfasındaki futura numarasına link vermek ve buna tıkladığım zamanda b sayfasındaki combobox ın değerini bu fatura numarasını yazdırmak istiyorum.

amacım a sayfasındaki fatura numarasına tıklayarak başka bir sayfada bu faturanın detaylarına ulaşmak. şimdiden teşekkürler.
 
Merhaba,

Örnek dosya eklermisiniz.
 
ilginiz için teşekkür ederim. dosyayı ekledim. yapmak istediğim işyerimde faturaları takip edebileceğim bir database hazırlamak.
"döküm" sayfasındaki combobox ta firmayı seçtiğim zaman "kayıtlar" sayfasındaki seçilen firmaya ait tekil fatura bilgilerini bu sayfaya dökmek ve link atamak. öncelikle yapmak istediğim bu dökümü almak. klasik yolla yapıyorum ama zaman alıyor data büyüdükçe bu dahada zorlaşacak. bunu kısa ve hızlı yapma şansım varmı.Diğer yapmaya çalıştığım şey ise "fatura" sayfasındaki combobox değerini değitirebilmek.
saygılar.
 

Ekli dosyalar

Merhaba,

Aşağıdaki kodu deneyiniz.

Kod:
Private Sub ComboBox1_Change()
    Dim S1 As Worksheet, Satir As Long, Bul As Range, Adres As String
    
    Set S1 = Sheets("kayıtlar")
    Range("B11:E65536").ClearContents
    Range("C3") = ""
    
    If ComboBox1 <> "" Then
        Satir = 11
        Set Bul = S1.Range("E:E").Find(ComboBox1, , , xlWhole)
        If Not Bul Is Nothing Then
            Adres = Bul.Address
            Range("C3") = S1.Cells(Bul.Row, "A")
            Do
                Cells(Satir, "B") = S1.Cells(Bul.Row, "H")
                Cells(Satir, "C") = S1.Cells(Bul.Row, "B")
                Cells(Satir, "C").Hyperlinks.Add Anchor:=Cells(Satir, "C"), Address:="", SubAddress:=S1.Name & "!B" & Bul.Row
                Cells(Satir, "D") = S1.Cells(Bul.Row, "L")
                Cells(Satir, "E") = S1.Cells(Bul.Row, "R")
                Satir = Satir + 1
                Set Bul = S1.Range("E:E").FindNext(Bul)
            Loop While Not Bul Is Nothing And Bul.Address <> Adres
        End If
    End If
End Sub


Aşağıdaki kod satırı ile ikinci istediğiniz işlemi yapabilirsiniz.

Kod:
Sheets("fatura").ComboBox1 = "DENEME"
 
Teşekkür ederim sayın Ayhan,
Gayet hızlı ve güzel çalışıyor. Elinize sağlık. Yalnız aynı fatura no ya sahip satırlardan bir adet yazdırmak istiyorum. Fatura no ya göre benzersiz değerleri seçmemiz mümkün mü acaba?.Saygılar.


Örnek:
3 numarayla iki çıktı veriyor. İlkinin olmasını istiyorum

TARİH FATURA NO MALIN CİNSİ G.TOPLAM
17.01.2011 3 TESLİM FİŞİ 708,00 TL
17.01.2011 3 SEVK İRSALİYESİ 708,00 TL
 
Aşağıdaki kodu deneyiniz.

Kod:
Private Sub ComboBox1_Change()
    Dim S1 As Worksheet, Satir As Long, Bul As Range, Adres As String
    
    Set S1 = Sheets("kayıtlar")
    Range("B11:E65536").ClearContents
    Range("C3") = ""
    
    If ComboBox1 <> "" Then
        Satir = 11
        Set Bul = S1.Range("E:E").Find(ComboBox1, , , xlWhole)
        If Not Bul Is Nothing Then
            Adres = Bul.Address
            Range("C3") = S1.Cells(Bul.Row, "A")
            Do
                If WorksheetFunction.CountIf(Range("C10:C" & Rows.Count), S1.Cells(Bul.Row, "B")) = 0 Then
                    Cells(Satir, "B") = S1.Cells(Bul.Row, "H")
                    Cells(Satir, "C") = S1.Cells(Bul.Row, "B")
                    Cells(Satir, "C").Hyperlinks.Add Anchor:=Cells(Satir, "C"), Address:="", SubAddress:=S1.Name & "!B" & Bul.Row
                    Cells(Satir, "D") = S1.Cells(Bul.Row, "L")
                    Cells(Satir, "E") = S1.Cells(Bul.Row, "R")
                    Satir = Satir + 1
                End If
                Set Bul = S1.Range("E:E").FindNext(Bul)
            Loop While Not Bul Is Nothing And Bul.Address <> Adres
        End If
    End If
End Sub
 
Sayın Ayhan,
Gerçekten çok teşekkür ederim. Günlerdir uğraştığım bir sorunumu hızlı bir şekilde çözdünüz.Bu şekilde bir çözümü nette uzun süredir arıyorum ama bulamamıştım. Sanırım diğer excel kullanıcıları içinde çok faydalı olacaktır.:)
İyi çalışmalar.
 
Geri
Üst