• 05-01-2026, 22:31:54
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Yarınki final sorum bu ama ne demek istediğini anlayamadım anlayan birisi ne istediğini anlatabilir mi yapay zeka uygulamları yanlış anlatıyor gibi geldi bana
  • 05-01-2026, 23:03:44
    #2
    @Cynnex;
  • 05-01-2026, 23:04:38
    #3
    Bu kodu boş excelde önce alt + f11 yaparak, sonra insert module yaparak çıkan beyaz sayfa yapıştır ardından f5 baş ekran sana öğrenci numarası isteyecektir girdiğin öğrenci numarasına göre uygun isteklerin oluşacaktır kolay gelsin. Sub OdevDinamikOlustur()
    Dim ws As Worksheet
    Dim ogrenciNo As String
    Dim S As Integer, L As Integer, i As Integer
    Dim hucreSayisi As Long
    Dim startVal As Double, endVal As Double, stepVal As Double

    Set ws = ThisWorkbook.Sheets(1)
    ws.Cells.Clear

    ' 1. Kullanıcıdan Öğrenci Numarasını İste
    ogrenciNo = InputBox("Lütfen Öğrenci Numaranızı Giriniz:", "Ödev Hazırlayıcı")
    If ogrenciNo = "" Then Exit Sub ' İptal edilirse çık

    ' 2. Rakamlar Toplamını (S) ve Son İki Basamağı (L) Hesapla
    S = 0
    For i = 1 To Len(ogrenciNo)
    If IsNumeric(Mid(ogrenciNo, i, 1)) Then
    S = S + CInt(Mid(ogrenciNo, i, 1))
    End If
    Next i
    L = CInt(Right(ogrenciNo, 2))

    ' 3. Hücre Sayısını Hesapla: (S * 11) + 3
    hucreSayisi = (S * 11) + 3

    ' 4. Bilgileri Excel'e Yazdır
    ws.Range("A1").Value = "Öğrenci No:"
    ws.Range("B1").Value = ogrenciNo
    ws.Range("A2").Value = "Rakamlar Toplamı (S):"
    ws.Range("B2").Value = S
    ws.Range("A3").Value = "Son İki Basamak (L):"
    ws.Range("B3").Value = L
    ws.Range("A4").Value = "Toplam Hücre Sayısı:"
    ws.Range("B4").Value = hucreSayisi

    ' Tablo Başlıkları
    ws.Range("A6").Value = "x Değerleri"
    ws.Range("B6").Value = "Seri 1"
    ws.Range("C6").Value = "Seri 2"
    ws.Range("D6").Value = "Seri 3"
    ws.Range("E6").Value = "Seri 4"

    ' 5. Verileri ve Formülleri Oluştur
    startVal = -10
    endVal = 5
    stepVal = (endVal - startVal) / (hucreSayisi - 1)

    For i = 0 To hucreSayisi - 1
    ws.Cells(i + 7, 1).Value = startVal + (i * stepVal)

    ' Formüllere S ve L değişkenlerini yerleştiriyoruz
    ' Seri 1: (S * x) + L (Çarpma, Toplama)
    ws.Cells(i + 7, 2).Formula = "=(" & S & " * A" & (i + 7) & ") + " & L
    ' Seri 2: (x - S) / L (Çıkarma, Bölme)
    ws.Cells(i + 7, 3).Formula = "=(A" & (i + 7) & " - " & S & ") / " & L
    ' Seri 3: ABS(x)^2 - S + L (Mutlak, Üs, Çıkarma, Toplama)
    ws.Cells(i + 7, 4).Formula = "=ABS(A" & (i + 7) & ")^2 - " & S & " + " & L
    ' Seri 4: (S / L) * ABS(x) (Bölme, Çarpma, Mutlak)
    ws.Cells(i + 7, 5).Formula = "=(" & S & " / " & L & ") * ABS(A" & (i + 7) & ")"
    Next i

    ' 6. Grafik Oluşturma (Kriter iv: Siyah-Beyaz Uyumu)
    Dim chartObj As ChartObject
    Set chartObj = ws.ChartObjects.Add(Left:=350, Width:=500, Top:=10, Height:=350)

    With chartObj.Chart
    .SetSourceData Source:=ws.Range(ws.Cells(6, 1), ws.Cells(hucreSayisi + 6, 5))
    .ChartType = xlXYScatterLinesNoMarkers
    .HasTitle = True
    .ChartTitle.Text = ogrenciNo & " - Seri Analizi"

    ' Eksenler
    .Axes(xlCategory).HasTitle = True
    .Axes(xlCategory).AxisTitle.Text = "x Değerleri"
    .Axes(xlValue).HasTitle = True
    .Axes(xlValue).AxisTitle.Text = "Seri Sonuçları "

    ' Siyah-Beyaz Uyumu İçin Stil Ayarları
    .FullSeriesCollection(1).Format.Line.ForeColor.RGB = RGB(0, 0, 0) ' Düz Siyah

    .FullSeriesCollection(2).Format.Line.ForeColor.RGB = RGB(0, 0, 0)
    .FullSeriesCollection(2).Format.Line.DashStyle = msoLineDash ' Kesikli

    .FullSeriesCollection(3).Format.Line.ForeColor.RGB = RGB(128, 128, 128) ' Gri Tonu
    .FullSeriesCollection(3).Format.Line.DashStyle = msoLineSysDot ' Noktalı

    .FullSeriesCollection(4).Format.Line.ForeColor.RGB = RGB(0, 0, 0)
    .FullSeriesCollection(4).Format.Line.Weight = 3 ' Kalın Siyah
    End With

    MsgBox "Ödev başarıyla oluşturuldu!" & vbCrLf & "Öğrenci No: " & ogrenciNo & vbCrLf & "Satır Sayısı: " & hucreSayisi, vbInformation
    End Sub