hücredeki yazıyı sayfa adı olarak yazma

Katılım
2 Haziran 2006
Mesajlar
111


resimde görüldüğü gibi işaretli yere(sayfa adının yazılması gereken yer) a1 hücresinde yer alan yazının yazılmasını istiyorum bu alana yazılacak gerekli kod nedir

bir de a2 ye değer yazdığımda bu kod tekrar aktif olsun aynı işlevi a2 için yapsın yani döngü olsun------ nasıl yaparım


yardımcı olursanız sevinirim. gerçi bu güne kadar yazdığım hiç bir soruya yanıt alamadım ama neyse

çıkmadık candan ümit kesilmez ben yinede sorayım
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,259
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Resimi doğru dürüst göremedim ben, bir gören olursa yardım edecek te çıkar.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar

yardımcı olursanız sevinirim. gerçi bu güne kadar yazdığım hiç bir soruya yanıt alamadım ama neyse
Sorularınızı takip etmenizde ve alt sıralara düştüğünde tekrar güncellemenizde fayda var -ki böylelikle dikkat çekebilsin-. Sorularınızı cevap alamamanızda herhangi bir art niyet zaten olamaz, mümkün de değil.. Sadece gözden kaçmış olabilir.

Sorunuza gelince;

Kod:
Activesheet.Name=Range("A2").Value
yazarsanız, bu satıra gelindiğinde Aktif sayfa ismi, A2 hücresinde yazılan olur.

bir de a2 ye değer yazdığımda bu kod tekrar aktif olsun aynı işlevi a2 için yapsın yani döngü olsun------ nasıl yaparım
Worksheet'in Change olayına kodlarınızı taşımanız ve Intersect fonskiyonunu kullanmanız gerekir. Şöyle ki;

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2")) Is Nothing Then Exit Sub
[COLOR=green]'.......[/COLOR]
[COLOR=green]'Sizin kodlarınız[/COLOR]
[COLOR=green]'.....[/COLOR]
End Sub
 
Son düzenleme:
Katılım
2 Haziran 2006
Mesajlar
111
merhaba bir anlık kızgınlıkla yazmışım. özür dilerim.
yazdığınız kodlar bende bir işe yaramadı siz de denermisiniz. belki versiyon sürümü hatası vardır.

ilgili dosyayı ekledim.
cevabınızı bekliyorum. teşekkürler





Sub Makro2()
'
' Makro2 Makro
'

'
Range("A1").Select
Selection.Copy
Windows("2.xls").Activate
ActiveSheet.Select
Sheets.Add
ActiveSheet.Select
ActiveSheet.Name = "A1"
Range("A3").Select
Windows("1.xls").Activate
Range("B1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("2.xls").Activate
ActiveSheet.Paste
Windows("1.xls").Activate
Range("C1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("2.xls").Activate
Range("B5").Select
ActiveSheet.Paste
Windows("1.xls").Activate
Range("D1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("2.xls").Activate
Range("C6").Select
ActiveSheet.Paste
Windows("1.xls").Activate
End Sub
 
Katılım
2 Haziran 2006
Mesajlar
111
belki buda yardımcı olur

Do While Döngüsü :

Bu dögünün genel yazim sekli asagidaki sekildeki gibidir.
Do While Kosul
Komutlar
Loop
Burada önce Kosula bakilir. Eger kosul dogru ise aradaki satirlar çalistirilir taki Loop satirina kadar. Loop satirinda tekrar While satirina dönülür. Kosul tekrar kontrol edilir. Eger dogru ise ara satirlar tekrar çalistirilir. Kosul yanlis ise Loop ‘tan sonraki ilk satirdan program çalismaya devam eder. Içiçe Do While döngüleride kurabiliriz.
Do While Kosul1

….
Do While Kosul2
…
Komutlar
Loop
…..
Loop
Her Do While için mutlaka bir Loop yerlestirmeliyiz.
Örnek :

Fact=1 I=2

Do While I<=Sayi

Fact=Fact * I

I=I+1

Loop

Buradaki &#246;rnekte te fakt&#246;riyel hesabini Do While d&#246;ng&#252;s&#252; ile yapiyoruz. Burada sayac olarak I degeri kullaniliyor. Eger fakt&#246;riyeli hesaplanacak deger 2 den k&#252;c&#252;kse (1 veya 0 ise) d&#246;ng&#252; i&#231;ine girilmemektedir. D&#246;ng&#252; i&#231;inde sayac artimini kendimiz veriyoruz. Sayac sayi degerine esit iken d&#246;ng&#252; son kez &#231;alitiriliyor.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
San&#305;r&#305;m bunlar kay&#305;t makrosu ... Kodlarla ne yapmak istedi&#287;inizi tam olarak anlat&#305;rsan&#305;z, daha iyi olur.

NOT : Do-Loop d&#246;ng&#252;leri'nden neyi kastediyorsunuz?
 
Katılım
2 Haziran 2006
Mesajlar
111
liste kitab&#305;mda a1 de yazd&#305;&#287;&#305;m de&#287;er rapor kitab&#305;mda yeni bir sayfa a&#231;acak ve liste kitab&#305;mda a1 de yazd&#305;&#287;&#305;m veri ismi yeni a&#231;&#305;lan sayfan&#305;n ad&#305; olacak

a1 sat&#305;r&#305;n&#305;n yan&#305;nda yer alan de&#287;erler de yeni a&#231;&#305;lan sayfada ilgili h&#252;crelere kopyalanacak

bu sistem a2 i&#231;in de a3 i&#231;inde d&#246;ng&#252; olarak tekrarlanacak. a..... sat&#305;rlar&#305;na yazd&#305;k&#231;a her sat&#305;rda bir sayfa a&#231;&#305;l&#305;p ayn&#305; i&#351;lemler tekrar edecek.

kodla nas&#305;l olabilir
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
&#350;imdi, sorunuz daha a&#231;&#305;k oldu :) ...

Bahsetti&#287;iniz i&#351;lem i&#231;in de d&#246;ng&#252; kullan&#305;lmaz. D&#246;ng&#252;ler periyodik olarak ard&#305; ard&#305;na i&#351;lem yaparlar. Sizdeki durum ise, gerekli oldu&#287;u zaman -ki bu durum A s&#252;tununa yeni Sipari&#351; Kodu girdi&#287;iniz and&#305;r- makronun tekrar &#231;al&#305;&#351;t&#305;r&#305;lmas&#305; esas&#305;na dayan&#305;r.

Zor bir kodlama de&#287;il.

Buradan, sayfalar&#305; ve kodlar&#305; kendi kafama g&#246;re ayarlay&#305;p &#231;al&#305;&#351;t&#305;rabilirim. Ama sizin kendinize adapte etmeniz gerekebilir.

Veyahut bu dosya &#351;ablonlar&#305;n&#305; (i&#231;inde birka&#231; &#246;rnek kay&#305;t bulunan) eklerseniz, direkt &#252;zerinde &#231;al&#305;&#351;abiliriz. B&#246;ylelikle hem sizin hem de benim ayr&#305; ayr&#305; u&#287;ra&#351;mam&#305;za gerek kalmaz.
 
Katılım
2 Haziran 2006
Mesajlar
111
tmm &#351;imdi i&#351;yerindeyim eve d&#246;n&#252;nce ilgili dosyalardan &#246;rnekler ekleyece&#287;im. te&#351;ekk&#252;r ederim
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
"1.xls" &#231;al&#305;&#351;ma kitab&#305;nda, 1660 s&#305;ra nolu sipari&#351; 3-4 sat&#305;r kay&#305;ttan olu&#351;uyor. Bu sipari&#351;e nas&#305;l sheet olu&#351;turulacak ve yaz&#305;lacak?
 
Son düzenleme:
Katılım
2 Haziran 2006
Mesajlar
111
1660 numaralı sipariş için açılan sayfa 1660 ve benzer 1660 nolu satırlar için açılacak sayfalar 1660 (1)... 1660 (2).... olarak yeni sayfa açılıp kaydedilecek. aynı olan her sipariş farklı satırlara yazıldığı için bir sorun olmaz. koda sadece aynı numaralı hücrelerde yanına () değer atayarak sayfa eklemesi gerektiği yazılacak. yardımınız için şimdiden çık teşekkür ederim
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sayfa olu&#351;turma i&#351;i tamam ancak 1.xls'deki bilgileri, 2.xls'deki forma aktaram&#305;yorum. Mesela Tiraj&#305; nereye yaz&#305;lacak? For ne? Bask&#305; For ne? Makine ne?

Biraz daha detay verseniz, bu i&#351; daha kolay olacak. &#350;u an resmen bulmaca &#231;&#246;zmeye &#231;al&#305;&#351;&#305;yorum
 
Katılım
2 Haziran 2006
Mesajlar
111
merhaba arkadaşım, siz satırlardaki bilgileri herhangi bir hücreye yada hücrelere aktarın ben daha sonra hangi hücreye gelecekse kendim hücre adını değiştiririm.

önemli olan sistemi çalıştırabilmek veri adları yada yerlerini değiştiririz.

Teşekkür ederim
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Şimdi, aşağıdaki kodları, "1.xls" kitabında "Kapak tak. " adlı sheet'in kod sayfasına kopyalayın (veya sadece örnek dosyayı indirin) ve yeni bir sıra no girin.

ŞART : 1.xls ve 2.xls dosyaları aynı dizin altında olmak zorunda ...

NOT : Bu kodlar, prosedürün kaba halidir. Değerlerin hepsi henüz atılmamıştır ancak sayfa oluşturma ve oluşturulan sayfaya, sipariş no getirme işlevleri yapılmaktadır. İnceleyiniz ve fikir beyan ediniz


Kod:
Dim wb1 As Workbook, wb2 As Workbook
Dim sh As Worksheet, shS As Worksheet, shT As Worksheet
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A3:A500")) Is Nothing Then
   Set wb1 = ThisWorkbook
   Set sh = wb1.Sheets("Kapak tak. ")
   Application.DisplayAlerts = False
   Call WorkB2
   Set shS = wb2.Sheets("SABLON")
   For j = 1 To wb2.Sheets.Count
       If wb2.Sheets(j).Name = Target & "" Then
          If cevap = MsgBox(Target & " için, aynı isimli bir FORM önceden oluşturulmuş." _
                                   & vbCrLf & "Silinip Yenisi oluşturulsun mu ?", vbYesNo, "UYARI") = vbYes Then
             wb2.Activate
             On Error Resume Next
             wb2.Sheets(j).Delete
             wb2.Sheets("SABLON").Copy After:=wb2.Sheets(wb2.Sheets.Count)
             With ActiveSheet
                 .Name = Target
                 .Range("B1") = Target & "deneme"
             End With
             Application.EnableEvents = False
             Target = ActiveSheet.Name
             Application.EnableEvents = True
             GoTo f2
          Else
             Application.EnableEvents = False
             Target = Empty
             Target.Select
             Application.EnableEvents = True
             GoTo f2
          End If
       End If
   Next j
   wb2.Activate
   On Error Resume Next
   wb2.Sheets("SABLON").Copy After:=wb2.Sheets(wb2.Sheets.Count)
   With ActiveSheet
       .Name = Target
       .Range("B1") = Target & "deneme"
   End With
f2:
   Application.DisplayAlerts = True
   Set sh = Nothing
   Set shS = Nothing
   Set wb1 = Nothing
   Set wb2 = Nothing
End If
End Sub
'-------------------------------------------
Sub WorkB2()
On Error GoTo f1
Set wb2 = Workbooks("2.xls")
Exit Sub
f1:
Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\" & "2.xls")
End Sub
 
Üst