• DİKKAT

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

Topla Formülüne Sekme'nin Adını Referans Göstermek

Katılım
5 Mart 2009
Mesajlar
12
Excel Vers. ve Dili
2007 english
Merhaba Arkadaşlar,

Bugüne kadar bana bir çok faydanız dokundu.

Sizlerden çözemediğim bir problem için yardım istiyorum.

Excel sayfasındaki sekmelerin isimlerini aşağıdaki formul ile alıyorum

Bana ilk ve son sekme lazım olduğu için onları saklıyorum.

WS_Count = Application.ActiveWorkbook.Worksheets.Count
Set WS = Application.ActiveWorkbook.Worksheets(1)

first_WS = WS.Name

Set WS = Application.ActiveWorkbook.Worksheets(WS_Count)

last_WS = WS.Name



Sonrasında ise Konsolide isimli bir sekmenin B3 hücresine, bu seçtiğim 2 sekmenin arasındaki bütün sekmelerdeki B3 hücrelerinin toplam formulünü yazmaya çalışıyorum.


ActiveWorkbook.Sheets("Konsolide").Range("B3").FormulaR1C1 = "=SUM('01.11.2010:30.11.2010'!RC)"


Bu şekilde yapabiliyorum, fakat benim sekmelerimin ismi dinamik olarak değişeceği için topla formulünün içini şu şekilde yazıyorum.

=SUM('first_W : last_WS'!RC)"


Bu şekilde de çalışmıyor.

Yardım edebilirseniz çok sevinirim.

Şimdiden herkese teşekkürler :)
 
Öyle Olmaz.
Aşağıdaki gibi olur.:cool:
Kod:
Sub formul_59()
    Dim ilk As Worksheet, bas As Worksheet, son As Worksheet
    Set ilk = ThisWorkbook.Sheets(1)
    Set bas = ThisWorkbook.Sheets(2)
    Set son = ThisWorkbook.Sheets(ThisWorkbook.Worksheets.Count)
    ilk.Range("B3").Formula = "=SUM(" & bas.Name & ":" & son.Name & "!$B$3)"
    MsgBox "İLk sayfaya B3 hücresine formül girildi." & vbLf & _
    "evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
 
bir şey daha ekleyeyim

ilk.Range("B3").Formula = "=SUM(" & bas.Name & ":" & son.Name & "!$B$3)"


B3 hücresine yazdırdığım bu formulde çıkan sonucu myLong adında long türünde dinamik bir değişkene bölmek istiyorum fakat direk bölme işlemi olarak formulun sonuna ekleyince çalışmıyor.

Nasıl ekleme yapmam gerekiyor bu formule?

Teşekkürler
 
Selamlar,

Kullandığınız makroyu foruma eklermisiniz.
 
Sub tarihSor()
Dim strDate As String
Dim NumDays As Long
Dim i As Long
Dim sh As Object
Dim wsBase As Worksheet

Dim WS_Count As Long

WS_Count = Application.ActiveWorkbook.Worksheets.Count

If WS_Count > 2 Then
GoTo EndIt

End If
On Error GoTo EndIt

Do
strDate = Application.InputBox( _
Prompt:="Çalışmak istediğiniz ay ve yılı aa.yyyy formatında giriniz.", _
Title:="Ay ve Yıl (aa.yyyy)", _
Default:=Format(Date, "mm/yyyy"), _
Type:=2)

If strDate = "False" Then Exit Sub
If IsDate(strDate) Then Exit Do
If MsgBox("Lütfen ay ve yıl formatını geçerli giriniz. ""12.2010"" gibi." _
& vbLf & vbLf & "Tekrar denensin mi?", vbYesNo + vbExclamation, _
"Invalid Date") = vbNo Then End
Loop

Application.ScreenUpdating = True
NumDays = Day(DateSerial(Year(strDate), Month(strDate) + 1, 0))
Set wsBase = Sheets("Şablon")

For i = 1 To NumDays
wsBase.Copy After:=Sheets(Sheets.Count)

ActiveSheet.Name = Format(DateSerial(Year(strDate), Month(strDate), i), "dd.mm.yyyy")
Worksheets(ActiveSheet.Name).Range("J1").Value = "TARİH: " + ActiveSheet.Name

Next i

EndIt:
Application.ScreenUpdating = True


'Konsolide sekmesine formulleri yaz'
' '
' '
' '


Dim ilk As Worksheet, bas As Worksheet, son As Worksheet
Set ilk = ThisWorkbook.Sheets(1)
Set bas = ThisWorkbook.Sheets(3)
Set son = ThisWorkbook.Sheets(ThisWorkbook.Worksheets.Count)

Dim string1 As String

Dim answer As String



ilk.Range("B3").Formula = "=SUM(" & bas.Name & ":" & son.Name & "!B3)"


Worksheets("Konsolide").Range("N1").Value = ThisWorkbook.Worksheets.Count - 2

Range("B3").Select

Selection.AutoFill Destination:=Range("B3:M3"), Type:=xlFillDefault
Range("B3:M3").Select

Selection.AutoFill Destination:=Range("B3:M32")
Range("B3:M32").Select



End Sub
 
ilk.Range("B3").Formula = "=SUM(" & bas.Name & ":" & son.Name & "!B3)"

Sadece bu formule bir bölme işlemi daha eklemek istiyorum sonuna. myLong 'dan gelen sayıya bölmek istiyorum
 
Veya şöyle sorayım

Aşağıdaki koddaki hata nedir nasıl düzeltilir?

string1 = ActiveSheet.Name
answer = Left(string1, 2)

ilk.Range("B3").formula = "=(BÖLÜM(" & B36 & ":" & answer & "))"

Teşekkürler
 
Selamlar,

Sanıyorum myLong başka bir prosedür içinde bulunuyor. Aşağıdaki şekilde denermisiniz.

Kod:
ilk.Range("B3").Formula = "=SUM(" & bas.Name & ":" & son.Name & "!B3)" & "/" & myLong
 
Geri
Üst