Kapalı Excel dosyaya veri yazdırma

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
441
Excel Vers. ve Dili
Windows 2011 TR
MS Office 2019 TR - 32bit

VBA, Selenium ve VBS
Altın Üyelik Bitiş Tarihi
08-04-2026
Merhaba,
Örnek olarak bir excel dosyası hazırladım. ComboBox ve TextBox taki verileri aynı dosyadaki sayfaya yazdırıyorum. İstediğim. Kapalı bir dosyaya yazdırmak, Yardımlarınızı bekliyorum.
(dosya içindede açıklamam var)
Şimdiden teşekkürler.
 

Ekli dosyalar

İ

İhsan Tank

Misafir
Merhaba
Sayın Mozdem
Şimdi şunu sorayım Bu sayfaya kayıt yapacak mı_?
Sonra bu kaydı yaparken arka planda dosyayı açsa kayıt yapsa sonra tekrar kapatsa işinizi görür mü_?
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
441
Excel Vers. ve Dili
Windows 2011 TR
MS Office 2019 TR - 32bit

VBA, Selenium ve VBS
Altın Üyelik Bitiş Tarihi
08-04-2026
Merhaba
Sayın Mozdem
Şimdi şunu sorayım Bu sayfaya kayıt yapacak mı_?
Sonra bu kaydı yaparken arka planda dosyayı açsa kayıt yapsa sonra tekrar kapatsa işinizi görür mü_?
Hayır, Bu Sayfaya Kayıt Yapmayacak.
Arka planda dosyayı açsa ve kayıt yapsa, evet işimi görür.Teşekkür ederim
 
Son düzenleme:
İ

İhsan Tank

Misafir
Hayır, Bu Sayfaya Kayıt Yapmayacak.
Arka planda dosyayı açsa ve kayıt yapsa, evet işimi görür.Teşekkür ederim
Merhaba
Userform'un kod bölümündeki kodları silin ve bu kodları kopyalayın
Kod:
Option Explicit
Private Sub CommandButton1_Click()
Dim ts, kaplan, trabzonspor, hamsi As Date
Dim bordo, mavi
bordo = ThisWorkbook.Path & "\"
mavi = "Veriler.xls"
Workbooks.Open (bordo & mavi)
ts = ActiveSheet.Name
kaplan = Workbooks(mavi).Sheets(ts).Range("B" & Rows.Count).End(xlUp).Row
Workbooks(mavi).Sheets(ts).Range("B" & kaplan + 1) = ComboBox1
Workbooks(mavi).Sheets(ts).Range("C" & kaplan + 1) = TextBox2
Workbooks(mavi).Sheets(ts).Range("A2") = 1
Workbooks(mavi).Sheets(ts).Range("A2:A" & kaplan + 1).DataSeries rowcol:=xlColumns, _
Type:=xlLinear, Date:=xlDay, step:=1, Trend:=False
Workbooks(mavi).Save
Workbooks(mavi).Close
End Sub
Private Sub UserForm_Initialize()
Dim ts, kaplan
Set kaplan = Sheets("Personel")
For ts = 2 To kaplan.Cells(Rows.Count, "B").End(xlUp).Row
ComboBox1.AddItem kaplan.Cells(ts, "B")
Next
End Sub
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Merhaba İhsan Bey, hayırlı sabahlar.

Dün akşam çıkmadan bu konuya ADO ile çözüm hazırlamıştım ama mesai bitimine denk geldiği için siteye ekleyememiştim.
Bu sabah eklerim diye düşünmüştüm, görüyorum ki siz arkadaşın istediği gibi bir çözüm sunmuşsunuz.
Ben de çeşitlilik olması açısından, eğer müsade ederseniz ADO ile hazırladığım örneği eklemek isterim... ?

Saygılar.
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
Selamlar Murat Bey Alternatif cozumlerin yogunlugu gelisme acisindan tum uyelerimiz icin cok onemli, alternatif paylasimlar icin kimsenin yanlis anlama ihtimalini dusunmeden paylasim yapabilirsiniz.
 
İ

İhsan Tank

Misafir
Merhaba İhsan Bey, hayırlı sabahlar.

Dün akşam çıkmadan bu konuya ADO ile çözüm hazırlamıştım ama mesai bitimine denk geldiği için siteye ekleyememiştim.
Bu sabah eklerim diye düşünmüştüm, görüyorum ki siz arkadaşın istediği gibi bir çözüm sunmuşsunuz.
Ben de çeşitlilik olması açısından, eğer müsade ederseniz ADO ile hazırladığım örneği eklemek isterim... ?

Saygılar.
Merhaba
Sayın Murat Osma
Sitemizde biz böyle paylaşımları devamlı destekliyoruz. Alternatif çözüm sunan arkadaşları bu konuda daha fazla teşvik ediyoruz. Siz de lütfen emek verip yazdığınız vakit harcadığınız kodu paylaşırsanız bizleri mutlu etmiş olursunuz.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Düşünceleriniz için ikinize de ayrı ayrı teşekkür ediyorum. :eek:k::
Hazırladığım kodları ve dosyayı paylaşıyorum.

İyi günler...


Kod:
Private bag As Object

Private Sub Baglan()
Set bag = CreateObject("Adodb.Connection")
bag.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
ThisWorkbook.Path & "\Veriler.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes"""
End Sub

Private Sub CommandButton2_Click()
Baglan
osma = "select * from [Data1$] where [Adı Soyadı]='" & ComboBox1.Text & "'"
Set rs = CreateObject("Adodb.Recordset")
rs.Open osma, bag, 1, 3
If rs.RecordCount = 0 Then
    rs.addnew
    rs(0).Value = TextBox1.Value
    rs(1).Value = ComboBox1.Text
    rs(2).Value = TextBox2.Text
    rs.Update
End If
MsgBox "Kayıt işlemi tamamlanmıştır...", vbInformation, _
"Sn. " & Environ("UserName")
Set rs = Nothing: Set bag = Nothing
End Sub
 

Ekli dosyalar

Katılım
1 Ağustos 2012
Mesajlar
2
Excel Vers. ve Dili
Excel 2013 - Türkçe
Merhaba, bu konu hakkında bir şey sormak istiyorum.
Yazılan cevaplarda veri aktarılacak dosyanın açılıp açılmayacağı sorulmuş.
Bunun nedeni nedir? Kapalı olan dosya hiç açılmadan veri atılamadığı için mi yoksa hiç açmadan verileri aktarmak için daha fazla kod yazılması gerektiği için mi?
 
Katılım
22 Aralık 2010
Mesajlar
3
Excel Vers. ve Dili
2003 excel, visua basic
Altın Üyelik Bitiş Tarihi
06/06/2018
bu makro çok güzel olmuş ellerinize sağlık.
Fakat Burada rs.addnew ile yeni satır ekliyor.
Bana şu lazım
kapalı exceldeki ilgili hücrenin değerini değiştirmek örneğin kapalı exceldeki CELLS(5, 8) HÜCRENİN DEĞERİ 8 yazıyorsa 32,50 yapmak istiyorum gibi
yada açık excelimdeki A3 hücresini kapalıdaki b8 hücresine kopyalamak.

BÖYLE BİŞEYİ HİÇBİRYERDE BULAMADIM . YARDIMCI OLURSANIZ ÇOK SEVİNİRİM.
BUNUN GİBİ 3000 E YAKIN EXCEL DOSYA VAR VE DEĞİŞTİRMEM GEREKLİ
 
Katılım
22 Aralık 2010
Mesajlar
3
Excel Vers. ve Dili
2003 excel, visua basic
Altın Üyelik Bitiş Tarihi
06/06/2018
Düşünceleriniz için ikinize de ayrı ayrı teşekkür ediyorum. :eek:k::
Hazırladığım kodları ve dosyayı paylaşıyorum.

İyi günler...


Kod:
Private bag As Object

Private Sub Baglan()
Set bag = CreateObject("Adodb.Connection")
bag.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
ThisWorkbook.Path & "\Veriler.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes"""
End Sub

Private Sub CommandButton2_Click()
Baglan
osma = "select * from [Data1$] where [Adı Soyadı]='" & ComboBox1.Text & "'"
Set rs = CreateObject("Adodb.Recordset")
rs.Open osma, bag, 1, 3
If rs.RecordCount = 0 Then
    rs.addnew
    rs(0).Value = TextBox1.Value
    rs(1).Value = ComboBox1.Text
    rs(2).Value = TextBox2.Text
    rs.Update
End If
MsgBox "Kayıt işlemi tamamlanmıştır...", vbInformation, _
"Sn. " & Environ("UserName")
Set rs = Nothing: Set bag = Nothing
End Sub
*********************************
bu makro çok güzel olmuş ellerinize sağlık.
Fakat Burada rs.addnew ile yeni satır ekliyor.
Bana şu lazım
kapalı exceldeki ilgili hücrenin değerini değiştirmek örneğin kapalı exceldeki CELLS(5, 8) HÜCRENİN DEĞERİ 8 yazıyorsa 32,50 yapmak istiyorum gibi
yada açık excelimdeki A3 hücresini kapalıdaki b8 hücresine kopyalamak.

BÖYLE BİŞEYİ HİÇBİRYERDE BULAMADIM . YARDIMCI OLURSANIZ ÇOK SEVİNİRİM.
BUNUN GİBİ 3000 E YAKIN EXCEL DOSYA VAR VE DEĞİŞTİRMEM GEREKLİ
 
Katılım
27 Nisan 2012
Mesajlar
21
Excel Vers. ve Dili
2010-EN
merhaba;
C:\Users\ACER\Documents\Kitap1 sayfası altında Sayfa1 'de C6-D6 birleştirilmiş hücresinde "DEĞİŞİKLİK OLMAYACAKTIR."ibaresi var.Bu ibarenin C:\Users\ACER\Desktop\Personel altındaki klasörlerin (yaklaşık 30 Adet) içerisindeki Excel sayfalarınnın (toplam sayfa yaklaşık 3000 adet) B11-C11 hücresine yazılmasını istiyorum;fakat bu işlemi yaparken değişiklik olacak sayfanın KAPALI olarak işlem yapmasını istiyorum.Umarım yardımcı olabilirsiniz.Teşekkürler.
 
Katılım
27 Nisan 2012
Mesajlar
21
Excel Vers. ve Dili
2010-EN
merhaba;
C:\Users\ACER\Documents\Kitap1 sayfası altında Sayfa1 'de C6-D6 birleştirilmiş hücresinde "DEĞİŞİKLİK OLMAYACAKTIR."ibaresi var.Bu ibarenin C:\Users\ACER\Desktop\Personel altındaki klasörlerin (yaklaşık 30 Adet) içerisindeki Excel sayfalarınnın (toplam sayfa yaklaşık 3000 adet) B11-C11 hücresine yazılmasını istiyorum;fakat bu işlemi yaparken değişiklik olacak sayfanın KAPALI olarak işlem yapmasını istiyorum.Umarım yardımcı olabilirsiniz.Teşekkürler.
çok zor soru sordum galiba :(
 
Katılım
19 Ağustos 2017
Mesajlar
174
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
02/05/2019
Abilerim Çözdüm teşekkür ederim :)
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,054
Excel Vers. ve Dili
Office 2013 İngilizce
Düşünceleriniz için ikinize de ayrı ayrı teşekkür ediyorum. :eek:k::
Hazırladığım kodları ve dosyayı paylaşıyorum.

İyi günler...


Kod:
Private bag As Object

Private Sub Baglan()
Set bag = CreateObject("Adodb.Connection")
bag.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
ThisWorkbook.Path & "\Veriler.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes"""
End Sub

Private Sub CommandButton2_Click()
Baglan
osma = "select * from [Data1$] where [Adı Soyadı]='" & ComboBox1.Text & "'"
Set rs = CreateObject("Adodb.Recordset")
rs.Open osma, bag, 1, 3
If rs.RecordCount = 0 Then
    rs.addnew
    rs(0).Value = TextBox1.Value
    rs(1).Value = ComboBox1.Text
    rs(2).Value = TextBox2.Text
    rs.Update
End If
MsgBox "Kayıt işlemi tamamlanmıştır...", vbInformation, _
"Sn. " & Environ("UserName")
Set rs = Nothing: Set bag = Nothing
End Sub

Merhabalar,
Verileri yazdıracağımız Veriler.xls dosyasındaki ilgili sayfa korumalı (sayfa korumalı) ise bu duruma nasıl bir çözüm yolu önerirsiniz?

Sayfa korumasının şifresini kod içerinde uygun şekilde yazılarak bir çözüm üretilebilir mi?

Teşekkürler,

iyi Çalışmalar.
 
Üst