Arama butonu
Bu konudaki kullanıcılar: 1 misafir
77
Cevap
147863
Tıklama
1
Öne Çıkarma
Cevap: VBA & Excel ve Makrolar Örnekler Sorunlar (4. sayfa)
&
13 yıl
Onbaşı

paylaşım için teşekkürler çok yararlı oldu


Bu mesaja 1 cevap geldi.
C
12 yıl
Er

arkadaşlar formul lazım yardım edecek olan varmı puntaj ile ilgili



K
12 yıl
Onbaşı

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;

< Resime gitmek için tıklayın >

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



Y
12 yıl
Teğmen

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ı >

Y
12 yıl
Teğmen

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ı >
Bu mesaja 1 cevap geldi.
N
11 yıl
Er

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



M
10 yıl
Çavuş

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.


Bu mesaja 1 cevap geldi.
S
10 yıl
Yarbay
Konu Sahibi

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"))))


Bu mesaja 1 cevap geldi.
M
10 yıl
Çavuş

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 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @serseri
S
10 yıl
Yarbay
Konu Sahibi

Tam anlayamadım ama galiba formülde tl yazan yerleri silin işinizi görecektir gibi geliyor.


Bu mesaja 1 cevap geldi.
M
10 yıl
Çavuş

şö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.




Bu mesajda bahsedilenler: @serseri
C
10 yıl
Yarbay

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


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @mstfzby
M
10 yıl
Çavuş

siz ve diğer arkadaşımız çok yardımcı oldunuz. çok teşekkür ederim. mükemmelsiniz.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @cdemir
C
10 yıl
Yarbay

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..


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @mstfzby
G
9 yıl
Yüzbaşı

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.



G
8 yıl
Er

arkadaşlar haftaya sınavımız varda şu soruları çözebilecek olan var mı
< Resime gitmek için tıklayın >



A
8 yıl
Yüzbaşı

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?



G
8 yıl
Er

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



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.