Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

excel makro yardımı


µh

Öne çıkan mesajlar

Merhaba,

Günlük olarak bakmam gereken listeler var, onları makro ile sadeleştirip aşağıdaki forma getiriyorum halihazırda ancak koşullu kopyalama işini beceremedim. 

spacer.png

Yapmaya çalıştığım:

1- Değeri 0 olan harfleri listelerken hesaba katmayacak, sadece ≥1 olanları listeleyecek.

2- Mavi ve Kırmızı harflerdeki değerleri toplayacak eğer 10'dan büyükse mavi ve kırmızıyı ayrı listeleyecek, küçük ise birlikte listeleyecek. Yeşiller ne olursa olsun ayrı listeleniyor. Toplam harf sayısı ve renkleri hep sabit değişmiyor.

Nasıl yapabilirim bunu?

Tenk yu

 

µh tarafından düzenlendi
Link to comment
Sosyal ağlarda paylaş

Ben bu işleri makroyla değil formülle yaptığım için bi çekiniyorum ya.

Gerçi asıl çekinme nedenim anlattığın ve istediğin şeyin 1 satırını bile anlamamış olmam. Yani illa bişi yazmak gerekiyorsa belli filtreler koyup bi pivot tablo çektirip ordan index matchle alabilirsin sanırım.

Link to comment
Sosyal ağlarda paylaş

macro olarak soyle:

 

Dim toplam As Integer, sonuc As String
toplam = Range("E2:J2").Value

If toplam >= 10 Then *burda koplama
Else *10'dan kucukse yine cell belirtip kopyalatacaksin.
End If 

 

kopyalamayi ogrenmek icin de mouse'la macro kaydet o kismi alip kullan

loop ile yaparsan daha kolay olur, linkten bak:

https://excelmacromastery.com/vba-if/

Goering tarafından düzenlendi
Link to comment
Sosyal ağlarda paylaş

Tamam error'u de çözüm artık 10dan küçük olanları farklı 10'dan büyük olanları farklı kopyalatabiliyorum. son sorunum ise esas sorunum, 0 olanları kopyalamasını istemiyorum. Onu nasıl yapacağız?

µh tarafından düzenlendi
Link to comment
Sosyal ağlarda paylaş

iki tane ic ice IF yazman lazim:

IF IsNull (0'sa veya bossa ) dene

Spoiler

If Len(Trim(Sheets("DealComparison").Cells(z + 1, 1))) = 0

        Then Myarray(z) = Sheets("DealComparison").Cells(z + 1, 1)

        Debug.Print Myarray(z)

End If

veya

Spoiler

If Sheets("DealComparison").Cells(z + 1, 1) <> VBNullString

    Then

End If

su iyi anlatiyor 1-2dk baktim: https://www.wallstreetmojo.com/vba-isnull/

Goering tarafından düzenlendi
Link to comment
Sosyal ağlarda paylaş

Abi az satırla beceremedim, komutlara hiç hakim değilim. Ben de eski uo'cu olmanın verdiği yetkiye dayanarak tam bir köylü makrosu kurdum.

Önce sayıları ayrı bir hücrede toplattım sonra o sayının istediğimden büyük ve küçük olmasına göre hepsini ayrı ayrı kopyalattım.

0 gelen satırları kopyalamama olayını şu şekilde yaptım:

 

If Range("I4") <= 16 Then
    Dim sourceRng As Range
    Dim cell As Range
    Dim i As Long
    Dim text As String

    Range("Q2:AD13").Select
    Selection.ClearContents
    
    Set sourceRng = ActiveSheet.Range("N2:N14")
    i = 2

    For Each cell In sourceRng
        If cell.Value > 0 Then
            cell.Resize(1, 3).Copy Destination:=Range("Q" & i)
            i = i + 1
        End If
    Next cell
    End If
    

 

Hepsine aynı satırları kopyalaya kopyalaya yaptığım için 450 satır falan oldu toplamda.Ha bu arada hepsini ayrı sublarda yaptığım için bi de hepsine call çeken çağırma subı yaptım bi tane. İşi bilen biri 100 satırın altında çözer gibime geliyor xd

µh tarafından düzenlendi
Link to comment
Sosyal ağlarda paylaş

  • 2 hafta sonra ...

Yeni bir problemle karşınızdayım

Sheette yıgınla link var ancak ben sadece birini update etmek istiyorum ve bunu da son tıkladığım celle göre ayarlayabilmek istiyorum. örneğin 17.08 tarihinie tıklayacagım ve updatelink 17.08 bulunan formülleri değiştirecek.

Sub update()
'
' update Makro
'

'
Dim i As String
i = ActiveCell.FormulaR1C1

ActiveWorkbook.UpdateLink Name:=i, Type:=xlExcelLinks

end sub

 

Şöyle yaptım ama olmuyor, yığınla şey denedim bir türlü değişkeni updatelinkle nasıl kullanacağımı bulamadım. Name:= "meraklikofteci" yapsam klasik şekilde oluyor ama ben o ismi hücreye tıklayarak ayarlamak istiyorum.

Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...