Excel Bir Sorum Var Arkadaşlar Acill

Kodla Büyü

zlatanibo

Seçkin Üye
Seçkin Üye
Mesajlar
382
ali 3


ali
ali
ali

Yukarıda anlaşılacağı gibi bir hücrede yazan metini "ali" diğer hücredeki sayı kadar "3" hücreye alt alta otomatik olarak yazdırabilir miyim. formüllerle uğraştım YİNELE fonksiyonu ile tek bir hücre içerisine 3 tane ali yazdırılabiliyor. ben her bir kelimeyi alt alta hücrelerde yazdırmak istiyorum . Şimdiden yardımlarınız için teşekkürler.
 
hocam 3 rakamı için bir sınır olacak mı? sınırsız rakam yazılabilir mi? biraz kafa yorayım bende.
 
Mutlaka daha iyi çözümler vardır ama şöyle birşey işinizi görür mü?
 

Ekli dosyalar

  • Kitap1.rar
    5.7 KB · Görüntüleme: 61
ali 4 bu rakamlar sonradan değişebilir olacak bu mümkün değil zannedersem
veli 2
osman 2
hüsamettin 3


ali
ali
ali
ali
veli
veli
osman
osman
hüsamettin
hüsamettin
hüsamettin
 

Ekli dosyalar

  • 1metintekrarla.rar
    3.3 KB · Görüntüleme: 43
birkan' Alıntı:
zlatanibo' Alıntı:
BİRKAN hocam bu formülü farklı sayfada kullanabilirmiyiz peki

Kullanılır elbet sadece formülü kopyalayıp gerekirse hücre adreslerini değiştirmeniz lazım.

hocam yukarıda dosyayı ekledim bakabilirmisin müsaitsen. sizin gönderdiğinizde sıkıntı oluor rakamlar değiştiğinde
 
zlatanibo' Alıntı:
birkan' Alıntı:
zlatanibo' Alıntı:
BİRKAN hocam bu formülü farklı sayfada kullanabilirmiyiz peki

Kullanılır elbet sadece formülü kopyalayıp gerekirse hücre adreslerini değiştirmeniz lazım.

hocam yukarıda dosyayı ekledim bakabilirmisin müsaitsen. sizin gönderdiğinizde sıkıntı oluor rakamlar değiştiğinde

hocam benim hazırladığım formül, sizin gönderdiğiniz dosyadaki gibi kullanıldığında işe yaramayacak galiba başka bir çözüm üretmek lazım.
 
hocam burda sol taraftaki isim bölümüne 4 tane yazılabiliyor. belki işini görür.
 

Ekli dosyalar

  • Kitap1.rar
    10.5 KB · Görüntüleme: 24
zlatanibo' Alıntı:
ali 3


ali
ali
ali

Yukarıda anlaşılacağı gibi bir hücrede yazan metini "ali" diğer hücredeki sayı kadar "3" hücreye alt alta otomatik olarak yazdırabilir miyim. formüllerle uğraştım YİNELE fonksiyonu ile tek bir hücre içerisine 3 tane ali yazdırılabiliyor. ben her bir kelimeyi alt alta hücrelerde yazdırmak istiyorum . Şimdiden yardımlarınız için teşekkürler.
Sayın Hocam;
A1: Hücresinde İsminiz mesela ALİ, ve B1 Hücresinde ise Kaç adet yazılacak ise o sayı olsun meslea 45,

sayfa adının yazılı olduğu ( ekranın sol alt tarafı) kısımda sağ tıklayın ve Kodu Görüntüle deyin
çıkan ekranda alttaki kodu ekleyin..

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim isim As String
Dim adet As Integer, i As Integer
    If Target.Address = "$B$1" Then
        Range("A2:A1000").ClearContents
        isim = Range("A1").Text
        adet = Range("B1").Value
    For i = 2 To adet + 1
        Range("A" & i) = isim
    Next
    End If
End Sub
 
bir örnekte benden olsun
üst satırdan yazmaya başlar...
ayrıca
bu problemin tam çözümünü hazırlamak neredeyse imkansız
 

Ekli dosyalar

  • yazdırma.rar
    8.1 KB · Görüntüleme: 25
hocam buyur istediğin gibi olmuş mu?
Kod:
Sub Düğme1_Tıklat()
Dim isaretci As Integer
Dim dizi()
Dim sayac As Integer
Dim n As Integer
isaretci = 1
'A1 ve B1 hücrelerini karşılıklı kontrol et ve döngü için sayac sayısı belirle
While Sayfa1.Range("A" & isaretci).Text <> "" And Val(Sayfa1.Range("B" & isaretci).Text) > 0
    isaretci = isaretci + 1
Wend
MsgBox isaretci - 1 & " tane eleman bulundu"
'diziyi yeniden boyutlandır eleman sayısı kadar
ReDim dizi(isaretci - 1, isaretci - 1)
'diziye A1 ve B1 değerlerini aktar
For n = 1 To isaretci - 1
    dizi(n, 1) = Sayfa1.Range("A" & n).Text
    dizi(n, 2) = Sayfa1.Range("B" & n).Text
Next
son = isaretci - 1

'Eleman sayısı kadar diziyi çalıştır
For n = 1 To son
    sayac = Val(dizi(n, 2))
    
    'b1 değeri kadar hücreye a1 değerini yaz
    While sayac
        Sayfa1.Range("A" & (isaretci)).Value = dizi(n, 1)
        sayac = sayac - 1
        isaretci = isaretci + 1
    Wend
Next
End Sub
 

Ekli dosyalar

  • kitap1.rar
    10.2 KB · Görüntüleme: 25
sayı değişimiyle son satırdaki veriye ait veri fazlalığını temizlemek için silme işlemi yapılmalı
Kod:
x = WorksheetFunction.CountA(Range("b1:b1000"))
y = WorksheetFunction.CountA(Range("a1:a1000"))
For s = x + 1 To y
Cells(s, 1) = ""
Next

Kod:
Sub Düğme1_Tıklat()
Dim isaretci As Integer
Dim dizi()
Dim sayac As Integer
Dim n As Integer
isaretci = 1

'A1 ve B1 hücrelerini karşılıklı kontrol et ve döngü için sayac sayısı belirle
While Sayfa1.Range("A" & isaretci).Text <> "" And Val(Sayfa1.Range("B" & isaretci).Text) > 0
    isaretci = isaretci + 1
Wend

MsgBox isaretci - 1 & " tane eleman bulundu"

'diziyi yeniden boyutlandır eleman sayısı kadar
ReDim dizi(isaretci - 1, isaretci - 1)

'diziye A1 ve B1 değerlerini aktar
For n = 1 To isaretci - 1
    dizi(n, 1) = Sayfa1.Range("A" & n).Text
    dizi(n, 2) = Sayfa1.Range("B" & n).Text
Next


son = isaretci - 1

'önceki veriyi temizleme
x = WorksheetFunction.CountA(Range("b1:b1000"))
y = WorksheetFunction.CountA(Range("a1:a1000"))
For s = x + 1 To y
Cells(s, 1) = ""
Next


'Eleman sayısı kadar diziyi çalıştır
For n = 1 To son
    sayac = Val(dizi(n, 2))
    
    'b1 değeri kadar hücreye a1 değerini yaz
    While sayac
        Sayfa1.Range("A" & (isaretci)).Value = dizi(n, 1)
        sayac = sayac - 1
        isaretci = isaretci + 1
    Wend

Next
End Sub
 
systran' Alıntı:
hocam buyur istediğin gibi olmuş mu?
Kod:
Sub Düğme1_Tıklat()
Dim isaretci As Integer
Dim dizi()
Dim sayac As Integer
Dim n As Integer
isaretci = 1
'A1 ve B1 hücrelerini karşılıklı kontrol et ve döngü için sayac sayısı belirle
While Sayfa1.Range("A" & isaretci).Text <> "" And Val(Sayfa1.Range("B" & isaretci).Text) > 0
    isaretci = isaretci + 1
Wend
MsgBox isaretci - 1 & " tane eleman bulundu"
'diziyi yeniden boyutlandır eleman sayısı kadar
ReDim dizi(isaretci - 1, isaretci - 1)
'diziye A1 ve B1 değerlerini aktar
For n = 1 To isaretci - 1
    dizi(n, 1) = Sayfa1.Range("A" & n).Text
    dizi(n, 2) = Sayfa1.Range("B" & n).Text
Next
son = isaretci - 1

'Eleman sayısı kadar diziyi çalıştır
For n = 1 To son
    sayac = Val(dizi(n, 2))
    
    'b1 değeri kadar hücreye a1 değerini yaz
    While sayac
        Sayfa1.Range("A" & (isaretci)).Value = dizi(n, 1)
        sayac = sayac - 1
        isaretci = isaretci + 1
    Wend
Next
End Sub



hocam çokçok teşekkür ederim büyük olasılık bunu geliştirerek başka bir sayfada raporlama yapabilirim. raporu tamamladığımda burada paylaşırım. cevap veren emek harcayan bütün arkadaşlara sonsuz teşekkürler..
 
Geri
Üst