• DİKKAT

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

Listeden tıklayarak hücreye yazdırma

Katılım
30 Eylül 2007
Mesajlar
110
Excel Vers. ve Dili
excel 2003 tr
Merhaba arkadaşlar,

benim 300 satırlık bir excel listem var ve her satırdaki hücrelerin birine mutlaka 15 kişilik listemden birisinin adını girmem gerekiyor acaba sütunun birinde her tıkladığım hücrede liste açılsa da isme tıklayıp o hücreye yazdırsam yapılabilirmi acaba? tek bir hücre için yapıyorum ama 300 hücre için tek tek yapmaktan daha kolayı varmı acaba?
 

Ekli dosyalar

Veri doğrulamayı inceleyiniz. Tam istediğiniz şey orda ..
 
sayın snx111 biraz örnekleyebilirmisiniz veri doğrulama ile ilgili bir ilişki kuramadım yada nasıl yapılacağını bilmiyorum.

sayın snx111 sanırım sizi yanlış anladım forumda dediğiniz sayfaları inceledim sorunumu halletim teşekkürler.
 

Murat bey ilginize teşekkür ederim fakat benim istediğim sadece c1 hücresinde değil c1den c300 e kadar her hücrede aynı işlemi yapsın istiyorum. bunu da sizin daha önce foruma gönderdiğiniz bir kod ile yaptım.
Dim nvE As Object

Private Sub Emre_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
nvE.Visible = False
ActiveCell.Offset(1, 0).Select
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Set nvE = ActiveSheet.OLEObjects("Emre")
On Error GoTo 0
If nvE Is Nothing Then
With ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
Width:=Target.Width, _
Height:=Target.Height)
.Name = "Emre"
End With
Set nvE = ActiveSheet.OLEObjects("Emre")
End If

Set Target = Intersect(Target, Range("c:c"))
If Target Is Nothing Then
nvE.Visible = False
nvE.LinkedCell = ""
Exit Sub
ElseIf Target.Count > 1 Or Target.Row = 1 Then
nvE.Visible = False
nvE.LinkedCell = ""
Exit Sub
End If

With nvE
Application.ScreenUpdating = False
.Top = Target.Top
.Left = Target.Left
.ListFillRange = "veri"
.LinkedCell = Target.Address
.Enabled = True
.Visible = True
.Activate
End With
End Sub
bunun için çok teşekkür ederim fakat burada bir sorun oldu ben 1. listemde çıkanları tıklayınca c hücrelerine yazmasını istiyordum bu kod ile başardım.fakat aynı sayfada ikinci bir liste ile aynı işlemi f hücrelerinde yapsın istiyorum bu yüzden tüm emre yazan yerlere emre1 veri yazan yerlere veri1 ismi ile taklit ederek denedim çalışmadı.yardımcı olabilirmisiniz.yani c hücrelerine tıklayınca 1. listeden c hücrelerine yazdırıyorum amaf hücrelerine tıklayınca 2. listeden f hücrelerine yazdıramıyorum hatam nerdedir sizce ?
 
Şu satırı bulun ve bu şekilde değiştirip bir deneyiniz;
Kod:
Set Target = Intersect(Target, Range("C:C", "F:F"))

Alında dosyanızı görsem daha iyi olur...
 
Şimdilik tek ComboBox ile şu şekilde bir deneyiniz;

Kod:
Dim nvE As Object

Private Sub Emre_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
   If KeyCode = 13 Then
      nvE.Visible = False
      ActiveCell.Offset(1, 0).Select
   End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   On Error Resume Next
   Set nvE = ActiveSheet.OLEObjects("Emre")
   On Error GoTo 0
   If nvE Is Nothing Then
      With ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
                                      Width:=Target.Width, _
                                      Height:=Target.Height)
         .Name = "Emre"
      End With
      Set nvE = ActiveSheet.OLEObjects("Emre")
   End If
    
   If Target.Column = 3 Then
        If Target Is Nothing Then
            nvE.Visible = False
            nvE.LinkedCell = ""
            Exit Sub
        ElseIf Target.Count > 1 Or Target.Row = 1 Then
            nvE.Visible = False
            nvE.LinkedCell = ""
        Exit Sub
        End If
        
        With nvE
            Application.ScreenUpdating = False
            .Top = Target.Top
            .Left = Target.Left
            .ListFillRange = "veri"
            .LinkedCell = Target.Address
            .Enabled = True
            .Visible = True
            .Activate
        End With
    Else
      nvE.Visible = False
    End If

       If Target.Column = 6 Then
        If Target Is Nothing Then
            nvE.Visible = False
            nvE.LinkedCell = ""
            Exit Sub
        ElseIf Target.Count > 1 Or Target.Row = 1 Then
            nvE.Visible = False
            nvE.LinkedCell = ""
        Exit Sub
        End If
        
        With nvE
            Application.ScreenUpdating = False
            .Top = Target.Top
            .Left = Target.Left
            .ListFillRange = "veri1"
            .LinkedCell = Target.Address
            .Enabled = True
            .Visible = True
            .Activate
        End With
    End If
End Sub
Gerekirse daha sonra kodları bir revize ederiz...
 
Geri
Üst