• DİKKAT

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

Kendi Yaptığımız Menülerde Face Olarak İcon Kullanmak veya Boş Face Düzenlemek

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Arkadaşlar bilindiği üzere kendi yaptığımız menülerde Excelin FaceID leri ile simge çağırabiliyoruz.
Kod:
    With cbpDZN                     '*DÜZEN menüsüne ekleme yap
    '***Düzen Menüsüne Komut Ekle
        Sirnok2 = .Controls.Count
        For i = 1 To Sirnok2                               'kapat Komutunun Sıra Numarasını
            If .Controls(i).ID = 22 Then sirno2 = i       'öğren, değişkene ata
            If .Controls(i).ID = 847 Then sirno3 = i
        Next
        
        With .Controls.Add(msoControlButton, , , sirno2 + 1) 'bir sonrasına kendi komutumuzu yerleştirdik....
            .Caption = "&Degerleri yapistir..."
            .OnAction = "Degerleri_Yapistir"
            [B][COLOR = "RED"]
            .FaceId = 662             [/B][/COLOR]

            .Tag = "HsrXLA02"
        End With
        
        With .Controls.Add(msoControlButton, , , sirno3 + 2)
            .Caption = "Diğer Sayfaları Sil"
            .OnAction = "DigerSayfalarıSil"
            [B][COLOR = "RED"]
.FaceId = 1964 [/COLOR][/B]            .Tag = "HsrXLA03"
        End With
    End With                        '*DÜZEN menüsüne ekleme bitti

buralarda dosya yolu kullanarak kendi yaptığımız iconu kullabilmek mümkünmüdür?

veya boş olan faceID ye dosya yolundan icon yapıştırmak yada
boş faceID yi makro ile düzenlemek

mesala bende 4817 nolu olan boş, ona 2498 nolu faci yapıştırıp yeni oluşan 4817 yi düzenle desek ve sol altttan üç kare gel Üste doğru 10 kare kırmızı çubuk çek gibi bir şey.
 
Son düzenleme:
Merhaba;

Ekli dosyaya bir göz atın....

Excel'in menülerinin en sonunda, "Yardım" menüsünün hemen yanına bir menü ilave edilecek. Bu menüyü tıklayın, altındaki "Hakkında" menüsünün "Face" i sizin istediğiniz gibi birşey.


.
 
Evet Hocam İstediğim bu...
a userfomunun 1 nolu imagesinden al deme şansımız varmı peki. ben deneyecemde şimdi sizede sorayım dedim.
 
userformdan almayı beceremedim hocam
 
Sağlık olsun, sayfa üzerinden alın ....
 
öyle yaptım hocam xla olduğu için sayfa da işlem yapmak istemedim ama dediğiniz gibi önemli olan netice... boş boş duracağına bir işe yarasın bari.

Emekleriniz için teşekkür ederim.
 
Sn haluk hocam xla belgemde kodları aşağıdaki gibi düzenledim...

Kod:
        With .Controls.Add(msoControlButton, , , sirnoDegYap + 1) 'bir sonrasına kendi komutumuzu yerleştirdik....
            .Caption = "&Excelden Worde Yapıştır..."
            .OnAction = "Worde_Yapistir"
             ThisWorkbook.Sheets(1).Shapes("icoWordGonder").Copy
            .PasteFace: CutCopyMode = False
            .Tag = "HsrXLA02B"
        End With

Ancak açılan yeni belgemde yapıştır aktif halde geliyor ve Son icon sayfaya yapışıyor.

Ne yapmam lazım?

görüldüğü üzere cutcopymodu kapattım ama işe yaramadı.
 
Güncel yardım edebilirseniz sevinirim.
 
Güncel yardım edebilirseniz sevinirim.
 
Güncel yardım edebilirseniz sevinirim.
 
Günaydın
Güncel yardım edebilirseniz sevinirim.
 
Bunu bir deneyin ...

Kod:
        Dim myClipboard As New DataObject
        myClipboard.SetText Empty
        myClipboard.PutInClipboard
        Set myClipboard = Nothing

Referanslardan Microsoft Forms 2.0 Object Library seçili olmalıdır....
 
teşekkür ederim hocam peki bu kolar nerteyew yazacağız

.PasteFace altınamıo üstünemi
 
Tabii ki, altına ....
 
Sn hocam şimdide şöyle bir sorun çıktı
1) önce exceli açtığımda yapıştır komutunun pasif olması gerekir ken aktif, ama içi boş pasif olsun.
kapatıp başka bir şey denedim
2) önce internet explorerda bir metin aralığı kopyaladım
ardından exceli açtım yapıştır aktif ancak kopyaladığım metin yok ortada
şöyle bir şey olabilirmi
eğer Clipboard da veri, resim varsa (excel açılmadan evvel herhengi bişr yerde kopyalama yapılmışsa) bunu bir değişkene almak ve iconları menülere verdiktikten sonra clipboarrda ilk baştaki kopyayı geri vermek ve excel uygulamasından yapıştıra basınca sorun olmaması

eğer Clipboard da veri, resim yoksa (excel açılmadan evvel herhengi bir yerde kopyalama yapılmamışsa) iconları menülere verdiktikten sonra clipboardı boşaltmak ve excel uygulamasında yapıştır komutunun pasif olması

mümkünmüdür.
 
Güncel yardım edebilirseniz sevinirim.
 
Güncel yardım edebilirseniz sevinirim.
 
Sn hocam şimdide şöyle bir sorun çıktı
1) önce exceli açtığımda yapıştır komutunun pasif olması gerekir ken aktif, ama içi boş pasif olsun.
kapatıp başka bir şey denedim
2) önce internet explorerda bir metin aralığı kopyaladım
ardından exceli açtım yapıştır aktif ancak kopyaladığım metin yok ortada
şöyle bir şey olabilirmi
eğer Clipboard da veri, resim varsa (excel açılmadan evvel herhengi bişr yerde kopyalama yapılmışsa) bunu bir değişkene almak ve iconları menülere verdiktikten sonra clipboarrda ilk baştaki kopyayı geri vermek ve excel uygulamasından yapıştıra basınca sorun olmaması

eğer Clipboard da veri, resim yoksa (excel açılmadan evvel herhengi bir yerde kopyalama yapılmamışsa) iconları menülere verdiktikten sonra clipboardı boşaltmak ve excel uygulamasında yapıştır komutunun pasif olması

mümkünmüdür.
Güncel yardım edebilirseniz sevinirim.
 
Güncel yardım edebilirseniz sevinirim.
 
Aşağıdaki kodları deneyerek yapmaya çalıştım ancak dataobj tekrar clipboarda almak istediğim son satırda hata veriyor. Excel sayfasına bir resim yapıştırıp onu kopyalayıp denediğimde çalışıyor ancak diğer durumlarda çalışmıyor. İlgilenen arkadaşlara fikir vermesi açısından ekliyorum kodları. Bir diğer yöntemde MoveMemory Api sini kullanarak yapılabilir gibi geliyor ancak onda da henüz muvaffak olabilmiş değilim. Bakalım biraz daha çalışalım üzerinde :)
Kod:
Option Explicit
Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal uFormat As Long) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal Hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
'.....Clipboard daki verilerin türleri..........
Private Const vbCFText = 1          ' Plain Text
Private Const vbCFBitmap = 2            ' Bitmap
Private Const vbCFMetafile = 3          ' Metafile Picture Format
Private Const vbCFDIB = 8           ' Device Independent Bitmap FOrmat
Private Const vbCFPalette = 9           ' Color Palette
Private Const vbCFEMetafile = 14        ' Enhanced Metafile Format
Private Const vbCFFiles = 15            ' Files
Private Const vbCFLink = -16640 '(&HFFFFBF00)    ' Link
Private Const vbCFRTF = -16639 '(&HFFFFBF01) ' Rich Text Format
Sub Get_Data_From_Clipboard()
    Dim DataObj As New MSForms.DataObject
    Dim a As Variant
    Dim i As Integer
    Dim onay As Boolean
    a = Array(1, 2, 3, 8, 9, 14, 15, -16640, -16639)
 
    DataObj.GetFromClipboard
 
    For i = 0 To UBound(a)
    If IsClipboardFormatAvailable(a(i)) Then 'Clipboarddaki verinin türünü belirler
        onay = True
        'MsgBox a(i)
        Exit For
    End If
    Next
    If onay Then
        ClearClipboard
    End If
 
    'İşlemler
 
    ClearClipboard
 
    DataObj.PutInClipboard
End Sub
 
Geri
Üst