• DİKKAT

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

Aktar Makrosu

Katılım
7 Mart 2012
Mesajlar
26
Excel Vers. ve Dili
2003 Türkçe
S.a. değerli forum ahalisi;
Bakkaliyede kullanmak için basit bir excel dosyası yapmaya çalışıyorum.Takıldığım bir konu var,makroyla çözüleceğini sanıyorum.Fakat makrolarla ilgili bilgim yok.Mevcut başlıkları inceledim fakat kendi dosyama uyarlamayı beceremedim.Yardım etmenizi rica ediyorum ekte örnek dosya mevcut ve işlem mevcut.
İyi günler,iyi çalışmalar.

Ekli dosyayı görüntüle sss-1.xls
 
Merhaba kardeşim,
Senin ihtiyacını görecek şekilde bir dosya ekledim.
Bu dosyadaki kayıt, sorgulama mantığı ve sahifeler senin dosyandan farklı.
İnşaallah işinizi görür.
Selametle kalın.
 

Ekli dosyalar

Teşekkürler hocam elinize sağlık güzel çalışma olmuş.
Ben gece yarısına uğraştım en son bir sayfa daha ekleyip satış verilerinin oraya aktarılması ve o sayfadan formülasyonla istediğimiz sonucun alınabileceğini düşünmüştüm.Siz alış içinde bir şeyler yapıp daha da geliştirmişsiniz dosyayı; teşekkür ederim.
Peki bu alış ve satış sayfasında biriken verileri istediğimiz zaman tarih ve ürüne göre (her tarih ve her ürün tek satır olacak şekilde) düzenletebilir miyiz? Mesela;
09.05.13 Eti Kurabi 1 adet 1 Tl
09.05.13 Eti Kurabi 2 adet 2 Tl.

Tarih aynı ve ürün aynı bir düğmeye basarak veya başka bir şey yaparak bunu aşağıdaki gibi yapabilir miyiz?

09.05.13 Eti Kurabi 3 Adet 3 Tl.

Ben filtrelerle çözebilir miyim diye baktım ama yapamıyorum maalesef.
 
Pıvot table ile alış ve satış veri tabanından istedğiniz şekilde rapor alabilirsiniz.
pıvot table hakkında bilginiz yok ise forumda güzel örnekler var, biraz kurcalayın.
Eğer yapamazsanız nasıl bir veriye ihtiyacınız varsa (Örnek; ben hangi gün-hangi üründen kaç tane sattım-kaça sattım gibi gibi...)bildirin yardımcı olmaya çalışayım.
Selametle kalın
 
pıvot çalışması dosyanız ek tedir.

Sayın kemal turan,
Çalışmanız çok güzel,elinize sağlık.
Bir konuda bilginizi öğrenmek amacıyla;
Alış Fişi veya Satış Fişi sayfalarında 3 veya daha fazla ürün kodu ile giriş yapıldığında ve ALIŞ KAYDET butonu ile kayıt yapıldığında Alış veya Satış sayfalarındaki kayıtlarda ilk 2 satır Tarih sütunu "DOĞRU" kayıt atıyor, fakat 3.cü satıra tarih sütununda "Tutar" yazıyor, tarih bilgisi yazmıyor, 3.cü satırdan sonra da 1.2.3 sıra numarası atıyor.
Kodlarınıza bakılınca Alış Fişi veya Satış Fişi sayfalarındaki H3 hücresindeki tarihi almadığı gözüküyor.

Bu konuda açıklayıcı bilgi verebilirseniz, uygulamanın daha sağlıklı olacağını tahmin ediyorum.
Şimdiden teşekkür ederim.
 
Turist Bey:
Satış ve alış fişleri sayfalarının gizlenmiş bulunan d sütununda, formüldeki ( =EĞER(C6<>"";H3;"") ) H3 hücre başvurusu formül alttaki diğer hücrelere kopyalanınca H4,H5,H6 şeklinde değiştiği için tarih verisi doğru alınamıyor.Makro D sutunundaki veriyi aynen,doğru olarak kopyalıyor aslında. Formülün H3 başvurusu H$3 şeklinde değiştirilirse sorun kalmayacaktır.

Özet tablo uygulamalarını biliyorum Kemal Bey.Beni endişelendiren satır sayısı arttıkça dosyanın kasması ihtimaliydi.Bu yüzden yazılacak bir makronun, ekstradan bir sayfa eklemeden sadece aynı tarihte satılan aynı ürünün tek satırda gösterilmesini sağlayıp sağlayamayacağını öğrenmek istemiştim.

Ve anladığım kadarıyla korumalı sayfaya, makro veri ekleyemiyor.Yanılıyorsam eğer uyarın beni lütfen:)

Dosyada bazı rutuşlar yaparak (biçimlendirmeler, arka plan, tablo tasarım v.b. ) kullanıma hazır hale getirdim.Bir kaç gün kullanıp denemesini yapınca başlığa ekleyeceğim (varsa yapmış olduğum hataları görüp düzeltmek adına). Kemal Bey'e ve herkese teşekkür ederim.
 
Son düzenleme:
Turist Bey:
Satış ve alış fişleri sayfalarının gizlenmiş bulunan d sütununda, formüldeki ( =EĞER(C6<>"";H3;"") ) H3 hücre başvurusu formül alttaki diğer hücrelere kopyalanınca H4,H5,H6 şeklinde değiştiği için tarih verisi doğru alınamıyor.Makro D sutunundaki veriyi aynen,doğru olarak kopyalıyor aslında. Formülün H3 başvurusu H$3 şeklinde değiştirilirse sorun kalmayacaktır.

Özet tablo uygulamalarını biliyorum Kemal Bey.Beni endişelendiren satır sayısı arttıkça dosyanın kasması ihtimaliydi.Bu yüzden yazılacak bir makronun, ekstradan bir sayfa eklemeden sadece aynı tarihte satılan aynı ürünün tek satırda gösterilmesini sağlayıp sağlayamayacağını öğrenmek istemiştim.

Ve anladığım kadarıyla korumalı sayfaya, makro veri ekleyemiyor.Yanılıyorsam eğer uyarın beni lütfen:)

Dosyada bazı rutuşlar yaparak (biçimlendirmeler, arka plan, tablo tasarım v.b. ) kullanıma hazır hale getirdim.Bir kaç gün kullanıp denemesini yapınca başlığa ekleyeceğim (varsa yapmış olduğum hataları görüp düzeltmek adına). Kemal Bey'e ve herkese teşekkür ederim.

Sayın Harzemşah,
Formüldeki değişiklikle, şimdi doğru çalışıyor.Bilgilendirdiğiniz için teşekkür ederim.

Korumalı sayfalara Makro ile kayıt yapılabilir, ancak; VBA girişinde şifre koymazsanız, biraz excel bilen birisi korumalı sayfalarınızın koruma şifresini görebilir.
Çalışmalarınızı ilerlettikten sonra bu konuda forumdan destek alabilirsiniz.
 
Arkadaşlar programı tamamlamak üzereyim ama bir yerde yardımınıza ihtiyacım var.Yazacağım kod Ömer Bey'in bir forum kullanıcısının sorununun çözümü için yazmış olduğu sayfaya giriş şifresi isteme makrosudur.Ama şifre yazılırken kutuda görünüyor.Kutuya şifre yazılırken şifrenin değil de ***** işaretlerinin görünmesini nasıl sağlarız.Kod bu:
Kod:
Private Sub Worksheet_Activate()
Application.Visible = False
Şifre = "sanane"
Yaz_Şifre = InputBox("Yetkili Girişi", "Marketing V.1.1")
If Yaz_Şifre <> Şifre Then Sheets("Satış Fişi").Select
Application.Visible = True
End Sub
Forumda aradım ama bulamadım.Yardımlarınızı bekliyorum.
 
Merhaba,
Aşağıdaki kod ustadlarımızın emeğidir.
sayfanın kod bölümüne yapıştırın.

Şifre 0319 dur.
Hatalı şifre veya herhangi bir durumda dönülecek sayfa "sayfa1" dir.
Siz değişiklik yapabilirsiniz.
Kolay gelsin

Private Sub Worksheet_Activate()
Application.Visible = False
Dim Parola

Parola = InputBoxDK("Lütfen şifrenizi giriniz !", "ŞİFRE GİRİŞİ")

If Parola = False Or Parola = "" Then
MsgBox "İşleminiz iptal edilmiştir !"
Application.Visible = True
Sheets("sayfa1").Select
ElseIf Parola = 319 Then
MsgBox "Girişiniz onaylanmıştır.", vbInformation
Application.Visible = True
Else
MsgBox "Hatalı şifre girdiniz !", vbCritical
Application.Visible = True
Sheets("sayfa1").Select
End If
End Sub
 
S.a.
Kemal Bey kodu denedim fakat çalışmıyor.Boş bir excel kitabı açıp orda da denedim ama sonuç aynı.Kodun
Kod:
Parola = Input BoxDK("Lütfen şifrenizi giriniz !", "ŞİFRE GİRİŞİ")
satırı hata veriyor.
 
S.a.
Kemal Bey kodu denedim fakat çalışmıyor.Boş bir excel kitabı açıp orda da denedim ama sonuç aynı.Kodun
Kod:
Parola = Input BoxDK("Lütfen şifrenizi giriniz !", "ŞİFRE GİRİŞİ")
satırı hata veriyor.

Kod:
Parola = InputBox("Lütfen şifrenizi giriniz !", "ŞİFRE GİRİŞİ")

şeklinde deneyiniz.

ayrıca, şifre 0319 değil, 319 :)
 
Sn. Doğan :
1-Kodu dediğiniz şekilde zaten denedim.Evvelce kullandığım Ömer Bey'in yazmış olduğu kodlarla aynı işlevi görüyor.Ben şifrenin, yazarken kutuda görünmemesini istiyorum tam olarak.
2-Tam sayıların başına getirilecek sıfırların bir değeri olmadığı için limitsiz sıfır kullanımından sonra 319 'un yazılması şifrenin doğru sayılması için yeterli olacaktır.
İlginiz için teşekkür ederim.Sorun devam ediyor.Çözüm önerisi bekliyorum arkadaşlar.
 
Merhaba
Sanırım mesajınızı tam okumadan yalnızca kodun çalışmayan kısmına odaklanmışım...

bir form oluşturup, bu forma şifrenin girileceği bir text box koyabilirsiniz.
istediğiniz olay gerçekleştiğinde (butona basıldığında, dosya açıldığında, sayfa değiştiğinde vb ) formu modal olarak çağırıp, şifre girişinin bu form üzerinden yapılmasını sağlayabilirsiniz.

textbox ın özelliklerine baktığınızda "password char" isimli bir başlık var, buraya * girerseniz, girilen harfler * olarak, A girerseniz hepsi A olarak görünecektir.

sıkıntı yaşarsanız dosyanızın son halini gönderirseniz yardımcı olmaya çalışırım
 
Sayfasının kod görüntüleme penceresinde bir userform ekleyeceğim.Userforma bir textbox.Yukarıdaki kodun ilk satırına userform1.show yazacağım.testboxa yukarıdaki makroyu yazıp password char başlığında * gireceğim.Doğru mudur?
 
aynen öyle...

ancak form a bir de buton ekleyerek, inputbox ile yaptığınız giriş kontrollerini, o butonun tıklanma olayına girmeniz gerekiyor.
 
Merhaba Sn.Harzemşah,
Kusura bakmayın unutmuşum:)
Aşağıdaki kodu bir modüle kopyalayıp yapıştırın.
INPUTBOXDK Satırının hata vermesi sorunu çözülecektir.
Aşağıdaki kod önceki kodun destekleyici kısmıdır.
Kolay gelsin.

Option Explicit
'////////////////////////////////////////////////////////////////////
'Password masked inputbox
'Allows you to hide characters entered in a VBA Inputbox.
'
'Code written by Daniel Klann
'March 2003
'////////////////////////////////////////////////////////////////////


'API functions to be used
Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long

Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
(ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _
ByVal dwThreadId As Long) As Long

Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _
(ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long) As Long

Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long

'Constants to be used in our API functions
Private Const EM_SETPASSWORDCHAR = &HCC
Private Const WH_CBT = 5
Private Const HCBT_ACTIVATE = 5
Private Const HC_ACTION = 0

Private hHook As Long

Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim RetVal
Dim strClassName As String, lngBuffer As Long

If lngCode < HC_ACTION Then
NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam)
Exit Function
End If

strClassName = String$(256, " ")
lngBuffer = 255

If lngCode = HCBT_ACTIVATE Then 'A window has been activated

RetVal = GetClassName(wParam, strClassName, lngBuffer)

If Left$(strClassName, RetVal) = "#32770" Then 'Class name of the Inputbox

'This changes the edit control so that it display the password character *.
'You can change the Asc("*") as you please.
SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0
End If

End If

'This line will ensure that any other hooks that may be in place are
'called correctly.
CallNextHookEx hHook, lngCode, wParam, lParam

End Function

Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, _
Optional YPos, Optional HelpFile, Optional Context) As String
Dim lngModHwnd As Long, lngThreadID As Long

lngThreadID = GetCurrentThreadId
lngModHwnd = GetModuleHandle(vbNullString)

hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID)

InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context)
UnhookWindowsHookEx hHook

End Function
 
Son düzenleme:
Kemal Bey,
Sunmuş olduğunuz çözüm fevkaladenin fevkinin de fevkinde yani;söyleyecek söz bulamıyorum.Sağolun,varolun:)
 
Geri
Üst