• DİKKAT

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

Soru Koşula bağlı otomatik doldurma

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
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

  • DENEME.xlsx
    DENEME.xlsx
    103.4 KB · Görüntüleme: 8
  • BU ŞEKİLDE OLMASI LAZIM.PNG
    BU ŞEKİLDE OLMASI LAZIM.PNG
    28.6 KB · Görüntüleme: 11
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
 
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 ?
 
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.....

.
 
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

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());
        }
    }
}
 
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 ?
 
............
.......
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.


.
 
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

  • Ekran Alıntısı.PNG
    Ekran Alıntısı.PNG
    59.9 KB · Görüntüleme: 5
  • Ekran Alıntısı2.PNG
    Ekran Alıntısı2.PNG
    34 KB · Görüntüleme: 7
Ö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:
Ö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?
 
Ö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?
 
Geri
Üst