• DİKKAT

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

hücreye sayfa komutu verme

Katılım
2 Ekim 2011
Mesajlar
356
Excel Vers. ve Dili
excel 360 TR 64bit
mesela a1-a20 arası hücrelere 20 adet olan sayfamıza herbir hücreye tıkladığımızda o sayfanın otomatik açılması nasıl olur

yani a1 hücresin adı "100" e bastığımızda "100" adlı sayfanın açılması

ama burda belirteyimki herbir hücrenin içindeki sayfa isimleri değişken olabiliyor raporlarıma göre.onun için hücrenin içinde yazan sayfayı açması gerekiyor
 
Son düzenleme:
Merhaba,

Sayfa isimlerinizin olduğu sayfanızın kod bölümüne aşağıdaki kodu uygulayıp deneyiniz.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, Range("A1:A20")) Is Nothing Then Exit Sub
    If Target = "" Then Exit Sub
    Sheets(Target.Text).Activate
    Exit Sub
Son: MsgBox Target & " isimli sayfa bulunamadı!", vbCritical
End Sub

Aslında makro kullanmadan da yapabilirsiniz. Köprü yöntemi ile sayfalarınıza bağlantı kurup açabilirsiniz.
 
makro kaydı

merhaba
vermiş olduğunuz kod işimi görüyor.fakat makro kaydı yaparken kopyala yapıştır işlemlerimde hücre tıklamalarımdaki sayfa köprülerini görmüyor buna bir çare varmı acaba?

Merhaba,

Sayfa isimlerinizin olduğu sayfanızın kod bölümüne aşağıdaki kodu uygulayıp deneyiniz.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, Range("A1:A20")) Is Nothing Then Exit Sub
    If Target = "" Then Exit Sub
    Sheets(Target.Text).Activate
    Exit Sub
Son: MsgBox Target & " isimli sayfa bulunamadı!", vbCritical
End Sub

Aslında makro kullanmadan da yapabilirsiniz. Köprü yöntemi ile sayfalarınıza bağlantı kurup açabilirsiniz.
 
Dilerseniz kodu hücrelerin çift tıklama olayına yazabilirsiniz. Böylece bahsettiğiniz sorunda ortadan kalkacaktır.
 
hücrelerin çift tıklama olayına nasıl yazıcam?
bukadar bilgisizliğim için kusuruma bakmayın.
 
Aşağıdaki kodu deneyiniz.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    On Error GoTo Son
    If Intersect(Target, Range("A1:A20")) Is Nothing Then Exit Sub
    If Target = "" Then Exit Sub
    Cancel = True
    Sheets(Target.Text).Activate
    Exit Sub
Son: MsgBox Target & " isimli sayfa bulunamadı!", vbCritical
End Sub
 
çift tıklamayla sayfa açılıyor .fakat yine makro diğer sayfayı açtığımı görmüyor aynı sayfada işlem yapıp geçiyor ?

Aşağıdaki kodu deneyiniz.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    On Error GoTo Son
    If Intersect(Target, Range("A1:A20")) Is Nothing Then Exit Sub
    If Target = "" Then Exit Sub
    Cancel = True
    Sheets(Target.Text).Activate
    Exit Sub
Son: MsgBox Target & " isimli sayfa bulunamadı!", vbCritical
End Sub
 
Sizin amacınız tam olarak nedir anlayamadım. İlk sorunuzda A1:A20 arasındaki hücrelere tıkladığımda hücredeki sayfa adı açılsın demiştiniz. Verdiğim kod zaten bu işlemi yapıyor. Sanıyorum siz bu işlemden sonra başka bir işlem daha yapmaya çalışıyorsunuz. Detaylı açıklarsanız yardımcı olabilirim.
 
sizin amacınız tam olarak nedir anlayamadım. Ilk sorunuzda a1:a20 arasındaki hücrelere tıkladığımda hücredeki sayfa adı açılsın demiştiniz. Verdiğim kod zaten bu işlemi yapıyor. Sanıyorum siz bu işlemden sonra başka bir işlem daha yapmaya çalışıyorsunuz. Detaylı açıklarsanız yardımcı olabilirim.

örnek ek gönderdim.arkadaşım
 

Ekli dosyalar

Aşağıdaki kodu kullanabilirsiniz.

Koddaki kırmızı renkli alanı "H" sütununa kadar aktarırsanız çakışma sözkonusu olur. Bu sebeple ben G sütununa kadar baz aldım. Siz kendi dosyanıza göre düzenlersiniz.

Kod:
Sub AKTAR()
    Son = Sheets("ANASAYFA").Cells(Rows.Count, "H").End(3).Row
    For Each Alan In Sheets("ANASAYFA").Range("H3:H" & Son)
        Set Sayfa = Nothing
        On Error Resume Next
        Set Sayfa = Sheets(Alan.Text)
        On Error GoTo 0
        If Not Sayfa Is Nothing Then
            Alan.Offset(0, 2).Resize(1, 9).Copy Sheets(Alan.Text).Range("A1")
            Alan.Offset(0, -7).Resize(1, 7).Value = Sheets(Alan.Text).Range("[COLOR=red]A5:G5[/COLOR]").Value
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
aşağıdaki kodu kullanabilirsiniz.

Koddaki kırmızı renkli alanı "h" sütununa kadar aktarırsanız çakışma sözkonusu olur. Bu sebeple ben g sütununa kadar baz aldım. Siz kendi dosyanıza göre düzenlersiniz.

Kod:
sub aktar()
    son = sheets("anasayfa").cells(rows.count, "h").end(3).row
    for each alan ın sheets("anasayfa").range("h3:h" & son)
        set sayfa = nothing
        on error resume next
        set sayfa = sheets(alan.text)
        on error goto 0
        ıf not sayfa ıs nothing then
            alan.offset(0, 2).resize(1, 9).copy sheets(alan.text).range("a1")
            alan.offset(0, -7).resize(1, 7).value = sheets(alan.text).range("[color=red]a5:g5[/color]").value
        end ıf
    next
    
    msgbox "işleminiz tamamlanmıştır.", vbınformation
end sub



korhan arkadaşım bir meselemide arz etmek istiyorum yardım ederseniz.şunuda çözüme kavuşturmak istiyorum.
 

Ekli dosyalar

L3 hücresine aşağıdaki formülü uygulayıp deneyiniz. Formülü sağa ve alt hücrelere sürükleyiniz.

Kod:
=EĞERHATA(DÜŞEYARA($K3;DOLAYLI("'"&METNEÇEVİR($H3;"gg.aa.yyyy")&"-"&$I3&"'!C9:J1048576");SÜTUN(B$1);0);"")
 
Yanıtınız için çok çok sağolun..formülünüzü kullanıp deneyeceğim.
Sonucunu yazarım
 
Sayfalar oluşturmak

l3 hücresine aşağıdaki formülü uygulayıp deneyiniz. Formülü sağa ve alt hücrelere sürükleyiniz.

Kod:
=eğerhata(düşeyara($k3;dolaylı("'"&metneçevir($h3;"gg.aa.yyyy")&"-"&$ı3&"'!c9:j1048576");sütun(b$1);0);"")

saygı değer korhan arkadaşım.verdiğin formül çok işime yaradı.sana bir şey danışmak istiyorum.excel örneğinde gördüğün gibi tarih olarak adlandırılmış sayfalardan neredeyse yüzlerce sayfa oluşturmak istiyorum.tek çalışma sayfasında 300 - 500 sayfa oluşturmak mantıklımı yoksa bunun başka bir yolu varmı

birde sayfaları tarihe göre nasıl sıralayabilirim.çoğunlukla yeni sayfa olarak eski tarih girdiğim oluyor..
 
Son düzenleme:
Tarihlere sayfa açmak yerine verilerinizi tek sayfada tutmaya çalışın. Verilerinizin yanına hangi tarihe ait olduğunu belirten bir tarih alanı oluşturup dilediğiniz gibi sorgulayabilirsiniz. Tarihleri mouse yardımı ile sürükleyerek manuel sıralayacağınız gibi makro yardımı ile de sıralayabilirsiniz.
 
Makro formülü kopyalıyor

MERHABA
AŞAGIDA VERDİĞİNİZ SON İKİ FORMÜLDE ÇAKIŞMA YADA BİR TERS GİDEN BİŞEYLER VAR GİBİ. MAKRODA "AKTAR" DEDİĞİMİZ ZAMAN L3 HÜCRESİNİN AŞAĞISINDA VE SAĞINDA OLAN RAKAMLARI DEĞİL FORMÜLLERİ KOPYALA YAPIŞTIR YAPIYOR.EKTEDE VAR.ASIL DOSYAMA UYGULADIĞIMDA BÖYLE YAPIYR.




=EĞERHATA(DÜŞEYARA($K3;DOLAYLI("'"&METNEÇEVİR($H3;"gg.aa.yyyy")&"-"&$I3&"'!C9:J1048576");SÜTUN(B$1);0);"")


sub aktar()
son = sheets("anasayfa").cells(rows.count, "h").end(3).row
for each alan ın sheets("anasayfa").range("h3:h" & son)
set sayfa = nothing
on error resume next
set sayfa = sheets(alan.text)
on error goto 0
ıf not sayfa ıs nothing then
alan.offset(0, 2).resize(1, 9).copy sheets(alan.text).range("a1")
alan.offset(0, -7).resize(1, 7).value = sheets(alan.text).range("a5:g5").value
end ıf
next

msgbox "işleminiz tamamlanmıştır.", vbınformation
end sub
 

Ekli dosyalar

Asıl dosyanızın küçük bir örneğini ekleyip tam olarak ne yapmak istediğinizi açıklarsanız boşu boşuna bu kadar uğraşmayız.
 
merhaba
koray arkadaşım asıl dosyamla ek te verdiğim dosya arasında bir farkyok.ayni tablo ve bendeki sadece fazla sayfalı bir dosya.şu işide halletsem sorunum 4 * 4lük hallolmuş olacak.bir zahmet arkadaşım
 
Asıl dosyanızın küçük bir örneğini ekleyip tam olarak ne yapmak istediğinizi açıklarsanız boşu boşuna bu kadar uğraşmayız.

merhaba
koray arkadaşım asıl dosyamla ek te verdiğim dosya arasında bir farkyok.ayni tablo ve bendeki sadece fazla sayfalı bir dosya.şu işide halletsem sorunum 4 * 4lük hallolmuş olacak.bir zahmet arkadaşım
 
Geri
Üst