Çok basit bir makro isteği

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Katılım
24 Haziran 2019
Mesajlar
14
Excel Vers. ve Dili
excel
Merhabalar
Konu başlığından da anlaşılacağı gibi sizler için çok basit bir makro isteğim olacak. Yardımcı olabilirseniz memnun olurum.

Bir çalışma kitabım ve burada da sayfa1 ve sayfa2 adında iki çalışma sayfam var.

sayfa1 de ;
A ve B sütunlarında 10'ar adet sayısal veri var. Bir de C sütunum var ama o boş.

Şunu istiyorum !
Makro butonumuz sayfa2 de olacak ve orada makroyu çalıştırdığım zaman A1 ve B1 hücresindeki değerleri çarpacak sonucu sayfa2 de A1 hücresine yazacak.
Sonra bunu alıp sayfa1 deki C1 hücresine koyacak.

İşlem tamamlanınca ;
sayfa1 de bir alt satıra geçecek (Yani A2 ye) yukarıdaki işlemin aynısını A sütunundaki veriler bitene kadar tekrarlayacak. Değerleri de C2 , c3 şeklinde koyacak.

Sanırım anlatabildim. Teşekkürler
 
Katılım
9 Şubat 2022
Mesajlar
204
Excel Vers. ve Dili
Office 2021 Türkçe (x64)
Altın Üyelik Bitiş Tarihi
09-02-2027
Bunun için makroya ihtiyaç yok, formülle daha kolay olacaktır. Sadece formülün yazılıp, aşağı doğru çekilmesi yeterli.
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selam
Neden Sayfa2 A1 hücresine yazdırdıktan sonra tekrardan Sayfa1 C1 hücresine yazdırmak istiyorsunuz.
Direkt olarak Sayfa1 C1 hücresine hesaplatsanız olmaz mı?


Not: Lütfen ofis dilinizi değiştiriniz.
 
Son düzenleme:

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,486
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sub CarpVeKopyala()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lastRow As Long, i As Long

' Sayfa1 ve Sayfa2'yi tanımla
Set ws1 = ThisWorkbook.Sheets("sayfa1")
Set ws2 = ThisWorkbook.Sheets("sayfa2")

' Sayfa1'deki son satırı bul
lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row

' A sütunundaki verilerin bitiş satırına kadar işlem yap
For i = 1 To lastRow
' A ve B sütunlarında bulunan değerleri çarp
ws2.Range("A1").Value = ws1.Cells(i, "A").Value * ws1.Cells(i, "B").Value

' Sonucu Sayfa1'deki C sütununa kopyala
ws1.Cells(i, "C").Value = ws2.Range("A1").Value

' Bir alt satıra geç
If i < lastRow Then
ws1.Cells(i + 1, "A").Select
End If
Next i
End Sub

Bu makro, Sayfa1'deki A ve B sütunlarında bulunan değerleri çarpar, sonucu Sayfa2'deki A1 hücresine yazar, ardından bu sonucu Sayfa1'deki ilgili satırdaki C sütununa kopyalar. Son olarak, bir sonraki satıra geçer ve işlemi tekrar eder.

Asıl dosyada değil kopyasında dener misiniz
 
Katılım
24 Haziran 2019
Mesajlar
14
Excel Vers. ve Dili
excel
Sub CarpVeKopyala()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lastRow As Long, i As Long

' Sayfa1 ve Sayfa2'yi tanımla
Set ws1 = ThisWorkbook.Sheets("sayfa1")
Set ws2 = ThisWorkbook.Sheets("sayfa2")

' Sayfa1'deki son satırı bul
lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row

' A sütunundaki verilerin bitiş satırına kadar işlem yap
For i = 1 To lastRow
' A ve B sütunlarında bulunan değerleri çarp
ws2.Range("A1").Value = ws1.Cells(i, "A").Value * ws1.Cells(i, "B").Value

' Sonucu Sayfa1'deki C sütununa kopyala
ws1.Cells(i, "C").Value = ws2.Range("A1").Value

' Bir alt satıra geç
If i < lastRow Then
ws1.Cells(i + 1, "A").Select
End If
Next i
End Sub

Bu makro, Sayfa1'deki A ve B sütunlarında bulunan değerleri çarpar, sonucu Sayfa2'deki A1 hücresine yazar, ardından bu sonucu Sayfa1'deki ilgili satırdaki C sütununa kopyalar. Son olarak, bir sonraki satıra geçer ve işlemi tekrar eder.

Asıl dosyada değil kopyasında dener misiniz
Hocam ilginize çok teşekkür ederim. Çalıştırdım. Ama hata aldım. Aşağıda yazdım.
Bir de şu olması lazım. Sanırım ben yanlış yazdım az önce

Sayfa 1 de ..... a1 * b1 yapılacak sonucu Sayfa 2 de a1 e yazacak
Sonra sayfa 2 deki a1 değerini alıp sayfa 1 de c1 e yazacak
sonra alt satıra geçip
a2
a3
a4 vs şeklinde devam edecek. Bu arada sayfa 2 de bulunan a1 de a2 a3 a4 vs şeklinde olacak , sayfa 1 deki c1 de c2 c3 c4 vs olacak

' Bir alt satıra geç
If i < lastRow Then
ws1.Cells(i + 1, "A").Select --->>> Burada takılıyor ve end ya da debug uyarısı çıkıyor.
End If
Next i
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst