Şimdi Ara

VBA & Excel ve Makrolar Örnekler Sorunlar (4. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
78
Cevap
3
Favori
147.656
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: önceki 1234
Sayfaya Git
Git
Giriş
Mesaj
  • paylaşım için teşekkürler çok yararlı oldu
  • arkadaşlar formul lazım yardım edecek olan varmı puntaj ile ilgili
  • quote:

    Orijinalden alıntı: serseri

    Userform Kullanımı

    VBA önemli noktalardan biriside userform kullanımıdır. Nasıl Visual Basicte userformlarla çalışılıyorsa Excel içine de userformu ekleyerek kod yazıp form yapabiliriz.

    Yeni bir form tasarlayabilmek için Visual Basic Düzenleyicisinden Insert bölümünden Userform'u seçebiliriz. Karsımıza bir form gelecektir. Bu form bilinen boş bir Visual Basic sayfasıdır. Buraya yine text box,command button gibi visual basice hitap eden kontroll menülerini koyabiliriz.

    örnek olarak basit bir liste hazırlayacagız. Bunun için formumuza Kaydet,Formu Temizle ve Çıkış butonları ekledik. Liste olarak ben öğrenci listesi düşündüm. Siz personel listesi,malzeme listesi gibi farklı (ihtiyaca göre) listeler tasarlayabilirsiniz.

    Programın çalışır haldeki ekran görüntüsü şu şekildedir;

     VBA & Excel ve Makrolar Örnekler Sorunlar


    Görüldüğü gibi forma öğrencileri ait bilgileri girmek üzere Adısoyadı,doğum tarihi ve yeri gibi (bunlar çoğaltılabilir) bilgilerin girişi için textboxlar eklenmiştir.

    Program adımında ilk userforma giriş yapmamızı sağlayan bir command butonu ekliyoruz. Öğrenci Bilgileri isimli bu buton ile frmogrenci adını verdiğimiz userforma ulasabiliyoruz. Bu butonu kodları ise

    Private Sub CommandButton1_Click()
    Sheets("deneme").Select
    frmogrenci.Show
    End Sub


    şeklindedir. Burada excel çalışma sayfasını ben "deneme" ismiyle kaydettiğim için böyledir.

    Daha sonra formda yer alan üç butonun kodları ise şu şekildedir. (Bu kodları VB düzenleyici içinde kodlar sayfasının solunda yer alan menüde FORMS içinde bulunan "frmogrenci" formunun içindeki yerlere yazıyoruz)

    Yeni Kayıt Ekle ;

    Private Sub cmdkayit_Click()
    Range("a2").Select
    Do While Not IsEmpty(ActiveCell)
    ActiveCell.Offset(1, 0).Select
    Loop
    If Range("a2").Value = "" Then
    Range("a2").Value = 1
    Range("a2").Select
    Else
    ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
    End If
    ActiveCell.Offset(0, 1).Value = txtogradi
    ActiveCell.Offset(0, 2).Value = txtdtarihi
    ActiveCell.Offset(0, 3).Value = txtdyeri

    aciklama = "Kayıt İşlemi Başarıyla Tamamlandı"
    dugme = vbOKOnly + vbInformation + vbDefaultButton1
    baslik = "kayit"
    MsgBox aciklama, dugme, baslik
    End Sub


    Yeni verilerin a2 hücresinden baslayacagı düsünülerek tasarlanmıştır. A2 bos ise "textogradi" değeri B' hücresine eklenmektedir. Mantık bu şekildedir. Bunun için DO WHILE döngüsü kullanılmıştır.

    Kayıt sonundda İşlem tamamlandı uyarısını içeren MsgBox eklenmiştir.

    Formu Temizle;

    Private Sub cmdtemizle_Click()
    txtogradi = ""
    txtdtarihi = ""
    txtdyeri = ""
    End Sub


    Bu buton daha önceki kayıttan kalan bilgilerin temizlenmesini sağlamaktadır.

    Çıkış;

    Private Sub CommandButton3_Click()
    Unload frmogrenci
    End Sub


    Formdan çıkışı sağlamaktadır.



    Basit ve kısa zamanda hazırlanmış birşey oldugundan sorun çıkabilir. Örneğin aynı isim yanlıslıkla iki kere eklenebilir. (Bunun için ayrı kod gerekir) ya da hücrelerde gereksiz doluluklar sistemin bütünlüğünü bozabilir.

    Elbetteki çeşitli kodlarla bütün bu aksaklıklar düzeltilebilir ve hatta genişletilebilir bu da VBA meraklılarına kalmış bir iştir....



    excel de bir sayfada yazan,örnek olarak 1,000 yazıyor.
    bu rakamdaki değişiklikleri başka bir sayfada nasıl görebiliriz
    yardımcı olursanız sevinirim




  • Eğer işletmede bilgisayar sistemi varsa veya bu hizmet dışarıdan elde ediliyorsa yapılan bilgisayar çalışmaları hakkında bilgi veriniz. İşletmedeki herhangi bir problemi ele alarak (Rutin olarak yapılan bir hesaplama işlemi olabilir) herhangi bir programlama dilinde (BASIC, FORTRAN, PASCAL, C, Visual Basic, EXCEL Macro, DELPHI, vb.) bir program yazınız ve bu programın ne yaptığını açıklayınız (Söz konusu program kesinlikle yazılacaktır). İşletmede kullanılan paket programları tanıtarak hangi işlerde, nasıl kullanıldıklarını sistematik olarak açıklayınız. Ayrıca, kullanılan (eğer varsa) MRP ve ERP (SAP, BAAN, ORACLE vb.) yazılımları hakkında kısa bir bilgi verip, bu programların modüllerini kısaca açıklayınız

    Yarın staj defterimi vermem gerek ve bu kısım eksik sadece. Yardımcı olabilecek birisi var mı? Çünkü hiçbir şey anlamadım bu kısımdan. Acil lütfen.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Eğer işletmede bilgisayar sistemi varsa veya bu hizmet dışarıdan elde ediliyorsa yapılan bilgisayar çalışmaları hakkında bilgi veriniz. İşletmedeki herhangi bir problemi ele alarak (Rutin olarak yapılan bir hesaplama işlemi olabilir) herhangi bir programlama dilinde (BASIC, FORTRAN, PASCAL, C, Visual Basic, EXCEL Macro, DELPHI, vb.) bir program yazınız ve bu programın ne yaptığını açıklayınız (Söz konusu program kesinlikle yazılacaktır). İşletmede kullanılan paket programları tanıtarak hangi işlerde, nasıl kullanıldıklarını sistematik olarak açıklayınız. Ayrıca, kullanılan (eğer varsa) MRP ve ERP (SAP, BAAN, ORACLE vb.) yazılımları hakkında kısa bir bilgi verip, bu programların modüllerini kısaca açıklayınız.

    Üretim stajı için staj defteri veriyorum yarın bir tek bu kısım kaldı. Hiçbir şey anlamadım yardimci olabilecek biri var mı? Çok acil

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • VBA tanımlarının ne anlama geldiğini nerden bulabilirim? Örneğin form ne işe yarar nasıl kullanılır alt program nedir nasıl yazılır gibi
  • arkadaşlar merhaba excelde bir konuda yardımınıza ihtiyacım var. yapmak isteğim şu şekilde:

    17lik araç 35tl
    27lik araç 60tl
    46lık araç 110tl
    54lük araç 110tl

    Şimdi ben D4 sütununa 17 yazdığımda F4 sütununda da 35 yazmasını 27 yazınca 60 yazması gibi bunu yukarıdaki tüm fiyatlar için kullanmak istiyorum. bunu formülü nasıl oluyor.

    teşekkürler.
  • F4 e yazmanız gereken formül;


    =EĞER(D4=17;"35tl";EĞER(D4=27"60 tl";EĞER(D4=46;"110 tl";EĞER(D4=54;"110 TL"))))
  • serseri kullanıcısına yanıt
    Arkadaşım süpersin tamamen istediğim buydu. allah senden razı olsun. tabloda orayı takip etmek zorunda kalmayacağım. çok teşekkürler.

    Fakat şöyle bir problemle karşılaştım. formulde gelen rakamı başka sütünda toplama işlemine sokamıyorum. peki bu konuda bana yardımcı olabilirmisiniz. hiçbir şekilde işleme almıyor.



    < Bu mesaj bu kişi tarafından değiştirildi mstfzby -- 11 Temmuz 2015; 15:06:23 >
  • Tam anlayamadım ama galiba formülde tl yazan yerleri silin işinizi görecektir gibi geliyor.
  • serseri kullanıcısına yanıt
    şöyle ki; eğer formülünü yaptık f1 sütununda istediğimiz sonuca ulaştık. f1 sütununda çıkan rakamla örneğin I1 sütununu toplayıp j1 sütununda sonucu görmek istiyorum. ancak eğer formülünde "tl" kısımlarını sildiğim halde eğer formülü yazılı sütundaki rakamları toplama işlemine katamıyorum. bunun çözüm yolunu biliyorsanız çok memnun olurum.
  • Selamlar sorun muhtemelen rakamların çift tırnak içeresinden yazılmasından kaynaklanıyor. Excel onları metin olarak algılıyor.

    Formulü şu şekilde yazarsanız sorun çözülecektir.
    =EĞER(D4=17;35;EĞER(D4=27;60;EĞER(D4=46;110;EĞER(D4=54;110))))


    Burda 4 seçenek olduğu için Eğer formülü yeterli gelmiş ama eğer çok fazla koşullu bir çalışma tablonuz olsaydı Düşeyara formülü daha kullanışlı olurdu.

    Küçük bir örnek vereyim. Örneğin 20 çeşit ürününüz var ve bir listede bu ürünler ile ilgili toplu bilgiler var.

    G sütünuna anahtar verileri H sütünuna da 1. satırdan başlayarak diğer verileri yazalım.

    G
    17
    27
    46
    54
    ....
    .....
    .....

    H
    35
    60
    110
    110
    ....
    .....
    .....

    D4 hücresine bulunmasını istediğimiz veriyi yazıyoruz.. Örneğin 17

    F4 sütununa da aşağıdaki formülü yazıyoruz ve işlem tamam
    =DÜŞEYARA(D4;G:H;2;0)
    Formülü kısaca anlatayım.

    D4 - bulunmasını istediğimiz verinin hücre referansı
    G:H - toplu verilerimizin bulunduğu listenin referansı. Verilerimizin G ve H sütunlarında bulunduğunu bildiriyoruz. (sütün sayısı artsaydı ilgili sütün kodlarını girecektik. örn. G:K )
    2 - verimiz bulununca kaçıncı sütündaki veriyi formülün bulunduğu hücreye yazacağını belirliyoruz. Örneğimizde 2 sütunlu bir listenin 2. sütunundaki verileri lazım olduğu için 2 yazdık.
    0 - ile aranan veriyi listede karşılaştırırken birebir olanını bulmasını sağlıyoruz. Bir şey yazmazsanız benzer bir veriyi bulup karşısındaki veriyi getirebilir.

    Verilerin aynı sayfada hatta aynı dosyada olması şart değildir. Başka bir dosyadaki listenizden de bu şekilde düşeyara yaptırabilirsiniz.
    Liste dosyası açık olmasa bile çalıştığınız dosyayı açreken güncelleme yapayım mı sorusuna evet diyerek liste dosyasında yaptığınız değişiklik varsa çalışma dosyanızda güncellenmesini sağlayabilirsiniz. ?

    Konunun üzerinden epey geçmiş ama okuyacak başka birisine yarayabilir belkide




  • cdemir kullanıcısına yanıt
    siz ve diğer arkadaşımız çok yardımcı oldunuz. çok teşekkür ederim. mükemmelsiniz.
  • mstfzby kullanıcısına yanıt
    Rica ederim. Excel ile ilgili bir sorununuz olursa yine yardımcı olmaya çalışırım.

    PM ile konunun linkini gönderebilirseniz daha iyi olur. Çünkü çok fazla girmiyorum forumun bu bölümlerine..
  • Arkadaşlar Merhaba,

    Şöyle bir yardıma ihtiyacım var.

    Seri numaralarını barkod okuyucu ile okutarak excele aktarıyorum.Auto enter barkod okuyucuda ayarlı olduğu için her seri numarası okutulduğunda bir alt hücreye otomatik olarak geçiyor.Burada benim istediğim, 5 veya 8 veya 12 tane seri nosunu okuttuktan sonra otomatik olarak başladığı hücreye(a1) geri dönmesi.
  • arkadaşlar haftaya sınavımız varda şu soruları çözebilecek olan var mı
     VBA & Excel ve Makrolar Örnekler Sorunlar
  • Merhaba arkadaşlar,

    Makro olarak aşağıdaki kodu yazdım.
     

    Sub Plate1()
    Application.ScreenUpdating = False
    yol = ThisWorkbook.Path & "\Kitap1.xlsx"
    Workbooks.Open (yol)
    Workbooks("Kitap1").Sheets("Sayfa1").Range("c2:c51").Copy _
    Workbooks("IFT2").Sheets("IFT2").Range("a4")

    Workbooks("Kitap1").Sheets("Sayfa1").Range("n2:n51").Copy _
    Workbooks("IFT2").Sheets("IFT2").Range("b4")

    Workbooks("Kitap1").Sheets("Sayfa1").Range("j2:j51").Copy _
    Workbooks("IFT2").Sheets("IFT2").Range("c4")

    Workbooks("Kitap1").Sheets("Sayfa1").Range("l2:l51").Copy _
    Workbooks("IFT2").Sheets("IFT2").Range("d4")

    Workbooks("Kitap1").Close True

    Application.ScreenUpdating = True
    MsgBox " 1. Plate Aktarım Başarılı "

    End Sub


    Benim pc'de sorunsuz olarak çalışıyor. Ancak başka bir pc'de denediğim zaman kod şurada hata veriyor:


    Workbooks("Kitap1").Sheets("Sayfa1").Range("c2:c51").Copy _
    Workbooks("IFT2").Sheets("IFT2").Range("a4")

    Sebebi ne olabilir?




  • Merhabalar,

    DH nin yeni uyesiyim. Internetde arama sonucu gozum surekli DH nin konularina takildi. Bende excel de kendimce birseyler yapmak istiyorum ama yardima ihtiyacim var tabikide. Yadim istedigim dosyanin linkini asagida paylasiyorum.

    Sorunum;Isci takip raporu olusturmaya calisiyorum ama macro bilgim 0. Makro ile islerin daha basit ve kullanisli oldugunu goruyorum.
    Yardim ihtiyacim soyle, Daily report (gunluk rapor) sayfasindaki daki taploya gunluk veriler girilir. Butona basilir ve girelen bilgiler Monthly Report (Aylik rapor) sayfasindaki yerlerine aktarilir. Daily report sayfasindaki tablo transferden sonra otomatik temizlenir. Dayly Report sayfasina hergun gunluk bilgi girecegim ve aktar dedigimde aylik rapor sayfasina tarih sirasiyla aktaracak. Aylik raporlar sayfasi doldugunda ise Monthly report sayfasindaki aktar butonuna basarak yearly report (yillik rapor) sayfasina transfer edilecek ve sayfa sifirlanacak. Son olarak ve son sayfa Report Form. Report form sayfasinda ise A2 ve G,H2 hucreleri doldurulup butona tiklandiginda ise A2 ye yazdigim ID li kisinin F,G,H,I2 de yazan tarihindeki raporlarin bilgisi gelerek kendi hucrelerindeki yerlerini alacak. Hucreler nereden nereye aktariliyor anlasilsin diye harf ve numaralar ekledim. Kusura bakmayin cok cok uzun oldu ama cok da ihtiyacim var. Hemde ogrenmeye.



    https://yadi.sk/i/J16Hsszy3NMHnz




  • 
Sayfa: önceki 1234
Sayfaya Git
Git
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.