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

Excel-VB kod yardım


Cthulhu

Öne çıkan mesajlar

hemen hemen hiç anlamadığım basic kullanarak excel'de bişeyler yapmaya çalışıyoruz da burası da takıldıkça sorma kısmım olsun. bir hücrede varolan bir değeri farklı bir sayfada herhangi bir satırın belli bir sütununda aratmak istiyorum. hatta aratmak değil eğer eşit bulursa burada işlem yapmak istiyorum.

yani !anasayfa'da 13,1 hücresi KABİN ise !stok'taki herhangi bir satırın 1. sütunundaki değer de KABİN mi diye arayacak. eğer kabin ise bu satırın sonundaki sayısal değer ile !anasayfa'daki sayısal değer arasında çıkartma işlemi yapacak.
Link to comment
Sosyal ağlarda paylaş

hmm vlookup o ya
vlookup(aratmak istediğin hücre ( aka kabin ), aramaya başladığın sütün ordan tutup getirmek istediğin değere kadar sürükle,aradaki mesafe,0 )
A B C D
Kabin boş cell boş cell 3

aramaya başladıgın sutunu secerken "A" dan "D" ye kadar surukleyıp 4 diceksin. Kabinin varsa 3 ü getirir
Link to comment
Sosyal ağlarda paylaş

abi şimdi şöyle bişey var sslerle anlatayım
http://img.photobucket.com/albums/v433/ferit/anasayfa.jpg
bu resimde gözüken değerleri
http://img.photobucket.com/albums/v433/ferit/stok.jpg
bu resimdeki sayfada arayacak. daha sonra tamamen aynı olanlarda 2.resimin adedi-1.resimdekinin adedi şeklinde 2.resmin adet kısmına yazacak. bu işi de tuşa bağlamam lazım çünkü bir kez çıkartıp daha sonra sileceğim o verileri ilk resimdeki sayfadan.

ayrıca kabin-mekanik-700-merkezi yok mesela benim stok sayfamda. onu boş geçecek ve alt satıra atlayacak. zaten vb'de kodlayamadığım kısım bu.

kod


Private Sub CommandButton5_Click() 'STOKTAN DÜŞ'

'kasalar için'

sat = 13
sut = 1

If Worksheets("anasayfa").Cells(sat, sut).Value = "" Then
'sıfırdan farklı bir şey çıkmamışsa sonlandıracak'

GoTo son

End If


For i = 2 To 10000

'sıfırdan farklılara bastıktan sonra çıkan listedekiler stok kısmında aynen mevcutsa bu ikisinin farkı stok sayfasına işlenecek'
' bu nedenle stoktan düş kısmına bastıktan sonra 2 kez silmesin diye o satır temizlenecek.'

If Worksheets("anasayfa").Cells(sat, sut).Value = Worksheets("stok").Cells(i, sut).Value And Worksheets("anasayfa").Cells(sat, sut + 1).Value = Worksheets("stok").Cells(i, sut + 1).Value And Worksheets("anasayfa").Cells(sat, sut + 2).Value = Worksheets("stok").Cells(i, sut + 2).Value And Worksheets("anasayfa").Cells(sat, sut + 3).Value = Worksheets("stok").Cells(i, sut + 3).Value And Worksheets("anasayfa").Cells(sat, sut + 4).Value = Worksheets("stok").Cells(i, sut + 4).Value Then


Worksheets("stok").Cells(i, sut + 8).Value = Worksheets("stok").Cells(i, sut + 8).Value - Worksheets("anasayfa").Cells(sat, sut + 6).Value
Worksheets("anasayfa").Cells(sat, sut).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 1).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 2).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 3).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 4).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 5).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 6).Value = ""


sat = sat + 1

Else

sat = sat + 1

End If

Next i



son: End Sub



yazdığım kod yukarda. kodun hatasını söyliyim, eğer anasyafada çıkan değerlerin satır olarak sırasıyla stok kaydının sırası farklıysa (yani kabin-mekanik-700-sağ ana sayfada 3. sırada gözükürken stokta 1. sırada gözükürse) bulmuyor.
Link to comment
Sosyal ağlarda paylaş

Suark said:

hmm vlookup o ya
vlookup(aratmak istediğin hücre ( aka kabin ), aramaya başladığın sütün ordan tutup getirmek istediğin değere kadar sürükle,aradaki mesafe,0 )
A B C D
Kabin boş cell boş cell 3

aramaya başladıgın sutunu secerken "A" dan "D" ye kadar surukleyıp 4 diceksin. Kabinin varsa 3 ü getirir


bu yaramıyor bana ya da hala yapamıyorum.
Link to comment
Sosyal ağlarda paylaş

vlookup kullanacaksın ama sende her hücrede kabin yazıyor, değişen kısım mesela en sondaki sağ sol falan.

sen önce kendin bi kod oluşturacaksın,
bunun için =birleştir formülünü kullan (concaterete mi neydi unuttum ingilizcesini)
kabin-mekanik-700-sol
kabin-mekanik-400-merkezi gibi bi kod oluştur,
aynısını öbür sheete de yap,
ondan sonra vlookup kullan.
şu an sadece kabin'i vlookup yaparsan bütün hepsinde kabin yazdığı için sonuç alamazsın.
Link to comment
Sosyal ağlarda paylaş

ginaly said:

vlookup kullanacaksın ama sende her hücrede kabin yazıyor, değişen kısım mesela en sondaki sağ sol falan.

sen önce kendin bi kod oluşturacaksın,
bunun için =birleştir formülünü kullan (concaterete mi neydi unuttum ingilizcesini)
kabin-mekanik-700-sol
kabin-mekanik-400-merkezi gibi bi kod oluştur,
aynısını öbür sheete de yap,
ondan sonra vlookup kullan.
şu an sadece kabin'i vlookup yaparsan bütün hepsinde kabin yazdığı için sonuç alamazsın.

tamam da ben sadece kabinlileri örnek olarak attım değişiyor hepsi. vb ile yaptı arkadaş oldu çift for'la.
Link to comment
Sosyal ağlarda paylaş

olan hali


Private Sub CommandButton5_Click() 'STOKTAN DÜŞ'

'kasalar için'

sat = 13
sut = 1

If Worksheets("anasayfa").Cells(sat, sut).Value = "" Then 'sıfırdan farklı bir şey çıkmamışsa sonlandıracak'

GoTo son

End If

For j = 0 To 10000
sat = 13 + j
sut = 1
For i = 2 To 10000

'sıfırdan farklılara bastıktan sonra çıkan listedekiler stok kısmında aynen mevcutsa bu ikisinin farkı stok sayfasına işlenecek'
' bu nedenle stoktan düş kısmına bastıktan sonra 2 kez silmesin diye o satır temizlenecek.'
If Worksheets("anasayfa").Cells(sat, sut).Value = "" Then
Exit For
End If

If Worksheets("anasayfa").Cells(sat, sut).Value = Worksheets("stok").Cells(i, sut).Value And Worksheets("anasayfa").Cells(sat, sut + 1).Value = Worksheets("stok").Cells(i, sut + 1).Value And Worksheets("anasayfa").Cells(sat, sut + 2).Value = Worksheets("stok").Cells(i, sut + 2).Value And Worksheets("anasayfa").Cells(sat, sut + 3).Value = Worksheets("stok").Cells(i, sut + 3).Value And Worksheets("anasayfa").Cells(sat, sut + 4).Value = Worksheets("stok").Cells(i, sut + 4).Value Then


Worksheets("stok").Cells(i, sut + 8).Value = Worksheets("stok").Cells(i, sut + 8).Value - Worksheets("anasayfa").Cells(sat, sut + 6).Value
Worksheets("anasayfa").Cells(sat, sut).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 1).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 2).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 3).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 4).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 5).Value = ""
Worksheets("anasayfa").Cells(sat, sut + 6).Value = ""




End If


Next i



Next j

son: End Sub

Link to comment
Sosyal ağlarda paylaş

  • 4 hafta sonra ...
Şimdi vba dan gitsek, dediğin daha rahat yapılabilir.Sayıyı bi değişkene atarız, sonra manipule eder yenisini koyarız ama zahmetli olcak o

excelden de yapabiliriz,
yanında ki sütunu boşalt, sonra text-to-columns tan virgül için ayır

onlar ayrılacak, ve sonra if le takıl.
Link to comment
Sosyal ağlarda paylaş

Yalnız bu benim işime yaramiyormus şöyle ki ben o sayıyı bi formülle hesapliyorum bu metni sütunlara dönüştürme formülü alıyor direk.. ayrıca her hesap sonrası elle sütunlara dönüştür dersem bitmez bu :) bana otomatik olarak bisey lazım.. gün yazıp tarihi parantez içine alıyoruz misal o tarz ondalik yazıp paranteze alsam tam olacak da :) neyse bu olmadı bi de vbden aklına geleni yaz istersen
Link to comment
Sosyal ağlarda paylaş

Biraz sıkışığım vakit açısından

IF li kısmını son kısma ekleyiver, ' lar commentler

said:
Sub sdad()

Dim anasayı, rounded, kalan As Double

Workbooks("workbookununadı").Worksheets("worksheetininadı").Activate


For i = 1 To 9999999
' kaç cell olduğu kesin belli değilse, to daki kısmı max değer yapıver

anasayı = ActiveSheet.Range("a" & i).Value
' ilk hücre yaptım alınacak datayı. "a" kısmını değiştirerek istediğin harfi verebilirsin burdan

If anasayı = "" Then
' boş cell e geldiğinde işlem yapmicak artık
Exit For
End If

rounded = Application.WorksheetFunction.RoundDown(anasayı, 0)
' aldığımız sayıyı aşağı yuvarlıyoruz, böylece integer kısmı kalıo sadece
' sonra aldığımızı anasayıdan çıkarında ondalık kısmı kalıcak

kalan = anasayı - rounded

' artık kalanla işlem yapabilirsin buraya if li işlemini koy artık ne istiosan
Next


End Sub
Link to comment
Sosyal ağlarda paylaş

Şimdi bi soru daha.. çubuk grafikle gannt şeması çıkarttım. Grafikteki dikey klavuz çizgiler ( yani yatay eksendeki değerleri gösteren çizgiler ) kafasına göre,işime yaramayan yerlerdeler. Kılavuz çizgileri bicimlendir diyorum sadece rengini falan değiştiriyor.. ben bunları istediğim yerden nasıl geçireceğim?
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...