Farkli sayfadan çalistirilamayan makro

Katılım
23 Mayıs 2014
Mesajlar
69
Excel Vers. ve Dili
2021-Fransizca
Iyi gunler
Asagidaki makro kodlarim "Base" isimli sayfada direk calistirilinca çalismasina ragmen diger bir sayfa olan "Formuller" sayfasinda bulunan butona atatigimda o sayfadan çalistiramiyorum. Kuçuk bir sorun var ama ben halledemiyorum. Yardimci olursaniz sevinirim.

Kod:
Sub Effectué()
    Dim lastcell As Range
    With Worksheets("Base")
        Set lastcell = .UsedRange.SpecialCells(xlCellTypeLastCell)
        With .Range([A1], lastcell)
            .AutoFilter Field:=24, Criteria1:="Effectué"
            With .Range([A3], lastcell).SpecialCells(xlCellTypeVisible)
                .Copy
                Worksheets("Effectué").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
                .EntireRow.Delete
            End With
            .AutoFilter
        End With
    End With
End Sub
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
With Worksheets("Base") tırnak içerisinde yazan sayfa ismini değiştirmeniz gerekir.
 
Katılım
23 Mayıs 2014
Mesajlar
69
Excel Vers. ve Dili
2021-Fransizca
With Worksheets("Base") tırnak içerisinde yazan sayfa ismini değiştirmeniz gerekir.
Adem bey oncelikle tesekkurler. Islem yapilacak sayfa "Base" sayfasi. Kullandigim buton formuller sayfasinda o yuzden oyle birakmistim. Sizin dediginiz gibi yapip yinede denemek amacli "formuller" diye degistirdim malesef calismadi
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Criteria1:="Effectué" ve Worksheets("Effectué") bu kısımları da kontrol ediniz.
Eğer yine olmaz ise dosyanızı paylaşır mısınız?
 
Katılım
23 Mayıs 2014
Mesajlar
69
Excel Vers. ve Dili
2021-Fransizca
Criteria1:="Effectué" ve Worksheets("Effectué") bu kısımları da kontrol ediniz.
Eğer yine olmaz ise dosyanızı paylaşır mısınız?
Evet onlari kontrol ettim Effectue yazili her satiri alip efectue sayfasina kes yapistir yapiyor. o komutlarda bir sorun yok. Zaten base sayfasinin içerisinde islem yaptigimda her sey yolunda. Benim asil sorunum bu base sayfasinda yapmis oldugum islemi formuller sayfasinda bir buton ile yapmak istedigimde olusuyor. Yani makroya bu islmei base sayfasi uzerinde gerceklestir demem gerekiyor.
Ben Sheets("Base").Select ile denedim fakat olmadi.
Tesekkurler
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Örnek Excel dosyası paylaşır mısınız?
 
Katılım
23 Mayıs 2014
Mesajlar
69
Excel Vers. ve Dili
2021-Fransizca
Maalesef paylasamiyorum. Ag baglantisi izin vermiyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,250
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Köşeli parantez içinde yazan hücre adreslerini çift tırnak içine alarak deneyiniz.

[A1] => "A1"
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Önce Base sayfasını seçtirip, işlem sonunda Formuller sayfasını aktif edebilirsiniz.
Kod:
Sub Effectué()
Dim lastcell As Range
Application.ScreenUpdating = False
Worksheets("Base").Select
    With Worksheets("Base")
        Set lastcell = .UsedRange.SpecialCells(xlCellTypeLastCell)
        With .Range([A1], lastcell)
            .AutoFilter Field:=24, Criteria1:="Effectué"
            With .Range([A3], lastcell).SpecialCells(xlCellTypeVisible)
                .Copy
                Worksheets("Effectué").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
                .EntireRow.Delete
            End With
            .AutoFilter
        End With
    End With
Worksheets("Formuller").Select
Application.ScreenUpdating = True
End Sub
 
Katılım
23 Mayıs 2014
Mesajlar
69
Excel Vers. ve Dili
2021-Fransizca
Korhan ve Adem bey ikinizede çok tesekkur ediyorum. Her iki çözümüde denedim ikiside sorunsuz çalisiyor. Emekleriniz ve ilginiz için tekrar tesekkurler.
 
Katılım
23 Mayıs 2014
Mesajlar
69
Excel Vers. ve Dili
2021-Fransizca
Tabi makro çalisinca farkli bir problem ortaya çikti. Ben sayfada 24. kolonda "Effectué" degerini aratip eger varsa satiri kes kopyala yaptiriyorum. Fakat bu kolonda bir "Effectué" degeri yoksa makro asagidaki su satirda hata veriyor. Bu donguye eger Effectué degeri yoksa iptal et diyebilirmiyiz?
Hata olan satiri asagida gonderiyorum.
With .Range([A2], lastcell).SpecialCells(xlCellTypeVisible)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,250
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi olabilir... Düzeltmeleri kendinize göre yaparsınız.

Rich (BB code):
    With Worksheets("Base")
        If WorkSheetFunction.CountIf(.Range("X:X"), "Effectué") > 0 Then
        Set lastcell = .UsedRange.SpecialCells(xlCellTypeLastCell)
        With .Range([A1], lastcell)
            .AutoFilter Field:=24, Criteria1:="Effectué"
            With .Range([A3], lastcell).SpecialCells(xlCellTypeVisible)
                .Copy
                Worksheets("Effectué").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
                .EntireRow.Delete
            End With
            .AutoFilter
        End With
        End If
    End With
 
Katılım
23 Mayıs 2014
Mesajlar
69
Excel Vers. ve Dili
2021-Fransizca
Aşağıdaki gibi olabilir... Düzeltmeleri kendinize göre yaparsınız.

Rich (BB code):
    With Worksheets("Base")
        If WorkSheetFunction.CountIf(.Range("X:X"), "Effectué") > 0 Then
        Set lastcell = .UsedRange.SpecialCells(xlCellTypeLastCell)
        With .Range([A1], lastcell)
            .AutoFilter Field:=24, Criteria1:="Effectué"
            With .Range([A3], lastcell).SpecialCells(xlCellTypeVisible)
                .Copy
                Worksheets("Effectué").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
                .EntireRow.Delete
            End With
            .AutoFilter
        End With
        End If
    End With
Cok tesekkur ederim sorunsuz bir sekilde çalisiyor.
 
Üst