Soru Koşula bağlı otomatik doldurma

uurluyum

Altın Üye
Katılım
25 Haziran 2019
Mesajlar
124
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2016 TR 32 Bit ve google e tablolar
Altın Üyelik Bitiş Tarihi
12-10-2024
Merhaba,

Ekte yüklemiş olduğum dosya da stok çıkışı sekmesinde ürün yazan yere hasta kolisi ya da ilaç çantası seçildiğinde otomatik olarak LİSTE sekmesinde var olan listeyi yazsın istiyorum. Örnek dosya da yüklüyorum nasıl olmasını istediğimle alakalı olarak. Bu konu da yardımcı olabilecek var mı?

DOSYA

--------------------------------------------------------

OLMASINI İSTEDİĞİM ŞEKLİ DE BU
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,547
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
STOK ÇIKIŞ isimli sayfanızın kod bölümüne uygulayıp deneyiniz.

C++:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("C2:C" & Rows.Count)) Is Nothing Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    Select Case Target
        Case "HASTA KOLİSİ"
            Target.Offset(1).Resize(23, 2).Value = Sheets("HASTA KOLİSİ").Range("A2:B24").Value
        Case "İLAÇ ÇANTASI"
            Target.Offset(1).Resize(5, 2).Value = Sheets("HASTA KOLİSİ").Range("C2:D6").Value
    End Select
End Sub
 

uurluyum

Altın Üye
Katılım
25 Haziran 2019
Mesajlar
124
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2016 TR 32 Bit ve google e tablolar
Altın Üyelik Bitiş Tarihi
12-10-2024
STOK ÇIKIŞ isimli sayfanızın kod bölümüne uygulayıp deneyiniz.

C++:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("C2:C" & Rows.Count)) Is Nothing Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    Select Case Target
        Case "HASTA KOLİSİ"
            Target.Offset(1).Resize(23, 2).Value = Sheets("HASTA KOLİSİ").Range("A2:B24").Value
        Case "İLAÇ ÇANTASI"
            Target.Offset(1).Resize(5, 2).Value = Sheets("HASTA KOLİSİ").Range("C2:D6").Value
    End Select
End Sub
Hocam teşekkür ederim oldu ancak Google E tablolar da çalışmıyor. Oraya uygun şekilde yapma şansımız var mı acaba ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,547
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu konuda @Haluk bey ya da @veyselemre bey destek olabilirler. Ben henüz E-Tablo makrolarını yazamıyorum.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Eğer bu isteğiniz; mobil telefon veya tablet üzerinde script (makro) çalıştırmaksa, bunun garantisi yok.

Diğer taraftan, dosyanızı açınca hata verdiği için konunun ne olduğunu da anlamadım.....

.
 

uurluyum

Altın Üye
Katılım
25 Haziran 2019
Mesajlar
124
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2016 TR 32 Bit ve google e tablolar
Altın Üyelik Bitiş Tarihi
12-10-2024
Eğer bu isteğiniz; mobil telefon veya tablet üzerinde script (makro) çalıştırmaksa, bunun garantisi yok.

Diğer taraftan, dosyanızı açınca hata verdiği için konunun ne olduğunu da anlamadım.....

.
Hocam Buyrun dosyayı ekledim C sütununa "HASTA KOLİSİ" ya da "İLAÇ ÇANTASI" yazıldığında direk listeyi kendisi otomatik olarak alıyor. Bu makro yu e tablolar makrosuna çevirebilir misiniz?
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,598
Excel Vers. ve Dili
Pro Plus 2021
JavaScript:
function onEdit(e) {
    var spreadsheet = SpreadsheetApp.getActive();
    var activeSheet = e.source.getActiveSheet();
    var cell = e.range;

    if (activeSheet.getName() == 'STOK ÇIKIŞ' && cell.getColumn() == 3 && cell.getRow() > 2) {
        if (cell.getValue() == "HASTA KOLİSİ") {
            e.range.offset(1, 0, 23, 2).setValues(spreadsheet.getRange("'HASTA KOLİSİ'!A2:B24").getValues());
        } else if (cell.getValue() == "İLAÇ ÇANTASI") {
            e.range.offset(1, 0, 5, 2).setValues(spreadsheet.getRange("'HASTA KOLİSİ'!C2:D6").getValues());
        }
    }
}
 

uurluyum

Altın Üye
Katılım
25 Haziran 2019
Mesajlar
124
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2016 TR 32 Bit ve google e tablolar
Altın Üyelik Bitiş Tarihi
12-10-2024
JavaScript:
function onEdit(e) {
    var spreadsheet = SpreadsheetApp.getActive();
    var activeSheet = e.source.getActiveSheet();
    var cell = e.range;

    if (activeSheet.getName() == 'STOK ÇIKIŞ' && cell.getColumn() == 3 && cell.getRow() > 2) {
        if (cell.getValue() == "HASTA KOLİSİ") {
            e.range.offset(1, 0, 23, 2).setValues(spreadsheet.getRange("'HASTA KOLİSİ'!A2:B24").getValues());
        } else if (cell.getValue() == "İLAÇ ÇANTASI") {
            e.range.offset(1, 0, 5, 2).setValues(spreadsheet.getRange("'HASTA KOLİSİ'!C2:D6").getValues());
        }
    }
}
Hocam elinize emeğinize sağlık tam istediğim gibi oldu. E tabloların makro dilini öğrenebileceğim bir yer öneriniz var mı acaba ?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
............
.......
E tabloların makro dilini öğrenebileceğim bir yer öneriniz var mı acaba ?
İnternette arama yaparsanız işinize yarayan şeyler bulabilirsiniz..... Aşağıdaki linkte yer alan, benim kişisel blog'umda da bazı kodlar var, arşivden bakabilirsiniz.


.
 

uurluyum

Altın Üye
Katılım
25 Haziran 2019
Mesajlar
124
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2016 TR 32 Bit ve google e tablolar
Altın Üyelik Bitiş Tarihi
12-10-2024
JavaScript:
function onEdit(e) {
    var spreadsheet = SpreadsheetApp.getActive();
    var activeSheet = e.source.getActiveSheet();
    var cell = e.range;

    if (activeSheet.getName() == 'STOK ÇIKIŞ' && cell.getColumn() == 3 && cell.getRow() > 2) {
        if (cell.getValue() == "HASTA KOLİSİ") {
            e.range.offset(1, 0, 23, 2).setValues(spreadsheet.getRange("'HASTA KOLİSİ'!A2:B24").getValues());
        } else if (cell.getValue() == "İLAÇ ÇANTASI") {
            e.range.offset(1, 0, 5, 2).setValues(spreadsheet.getRange("'HASTA KOLİSİ'!C2:D6").getValues());
        }
    }
}
Hocam merhaba bu konu ile alakalı olarak bir sorum daha olabilir mi acaba size.

C sütununa HASTA KOLİSİ ya da İLAÇ ÇANTASI yazdığımızda belirlediğimiz yerdeki listeyi alıyordu ancak C sütununa HASTA KOLİSİ yazdıktan sonra hemen yanına D sütununa 2 yazdığımızda HASTA KOLİSİ sekmesinde yazan rakamları 2 ile çarparak almasını istiyorum böyle bir şey yapabilir miyiz acaba?
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,598
Excel Vers. ve Dili
Pro Plus 2021
Önce Adet girip, daha sonra ürün seçmeniz gerekir.

JavaScript:
function onEdit(e) {
    var cell = e.range;
    if ( e.source.getActiveSheet().getName() == 'STOK ÇIKIŞ' && cell.getColumn() == 3 && cell.getRow() > 1) {
        var say = cell.offset(0, 1).getValue();
        var uz = 0;
        var rng = "'HASTA KOLİSİ'!";
            if (cell.getValue() == "HASTA KOLİSİ") {
            uz = 23;
            rng += "A2:B24";
        } else if (cell.getValue() == "İLAÇ ÇANTASI") {
            uz = 5;
            rng +="C2:D6";
        }
        if (uz > 0) {
            cell.offset(1, 0, uz, 2).setValues(SpreadsheetApp.getActive().getRange(rng).getValues());
            if (say > 1) {
                for (var i = 1; i < uz + 1; i++) {
                    cell.offset(i, 1).setValue(say * cell.offset(i, 1).getValue());
                }
            }
        }
    }
}
 
Son düzenleme:

uurluyum

Altın Üye
Katılım
25 Haziran 2019
Mesajlar
124
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2016 TR 32 Bit ve google e tablolar
Altın Üyelik Bitiş Tarihi
12-10-2024
Önce Adet girip, daha sonra ürün seçmeniz gerekir.

JavaScript:
function onEdit(e) {
    var cell = e.range;
    if ( e.source.getActiveSheet().getName() == 'STOK ÇIKIŞ' && cell.getColumn() == 3 && cell.getRow() > 1) {
        var say = cell.offset(0, 1).getValue();
        var uz = 0;
        var rng = "'HASTA KOLİSİ'!";
            if (cell.getValue() == "HASTA KOLİSİ") {
            uz = 23;
            rng += "A2:B24";
        } else if (cell.getValue() == "İLAÇ ÇANTASI") {
            uz = 5;
            rng +="C2:D6";
        }
        if (uz > 0) {
            cell.offset(1, 0, uz, 2).setValues(SpreadsheetApp.getActive().getRange(rng).getValues());
            if (say > 1) {
                for (var i = 1; i < uz + 1; i++) {
                    cell.offset(i, 1).setValue(say * cell.offset(i, 1).getValue());
                }
            }
        }
    }
}
Hocam teşekkür ederim yardımınız için ancak adet yazılacak sütun d sütunu değil e sütunu olacak bunu belirtmeyi unutmuşum kusura bakmayın lütfen.
E sütununa girilince olacak şekilde yardımcı olur musunuz?
 

uurluyum

Altın Üye
Katılım
25 Haziran 2019
Mesajlar
124
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2016 TR 32 Bit ve google e tablolar
Altın Üyelik Bitiş Tarihi
12-10-2024
Önce Adet girip, daha sonra ürün seçmeniz gerekir.

JavaScript:
function onEdit(e) {
    var cell = e.range;
    if ( e.source.getActiveSheet().getName() == 'STOK ÇIKIŞ' && cell.getColumn() == 3 && cell.getRow() > 1) {
        var say = cell.offset(0, 1).getValue();
        var uz = 0;
        var rng = "'HASTA KOLİSİ'!";
            if (cell.getValue() == "HASTA KOLİSİ") {
            uz = 23;
            rng += "A2:B24";
        } else if (cell.getValue() == "İLAÇ ÇANTASI") {
            uz = 5;
            rng +="C2:D6";
        }
        if (uz > 0) {
            cell.offset(1, 0, uz, 2).setValues(SpreadsheetApp.getActive().getRange(rng).getValues());
            if (say > 1) {
                for (var i = 1; i < uz + 1; i++) {
                    cell.offset(i, 1).setValue(say * cell.offset(i, 1).getValue());
                }
            }
        }
    }
}
Hocam Selam bu kod uzun bir süredir çalışıyordu ancak bu gün hiç bir neden yokken çalışmamaya başladı ve bu hatayı veriyor.

TypeError: Cannot read property 'range' of undefined
onEdit
@ function.gs:2


neden olmuş olabilir bu durum?
 
Üst