Excel Kodunu Google E tablo koduna çevirme

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
İyi geceler,
Aşağıdaki Excel kodunu Google E tablo koduna (js) koduna çevirebilirmiyiz. Şimdiden teşekkür ederim

Private Sub Worksheet_Activate()
On Error Resume Next
Dim bul As Range
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
For Each bul In Range("C10:C100")
If bul.Value = Empty Then
Rows(bul.Row).Hidden = True
Else
Rows(bul.Row).Hidden = False
End If
Next bul
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Merhaba,
Aşağıda size iki kod hazırladım.
Sayfa ismi "Sayfa1" . Bunu kendinize göre değiştirin.
Ayrıca açılışta Sayfa1 sayfasında Makrolarım diye bir kısa yolda göreceksiniz.
Deneyin.
JavaScript:
var startRow = 10;
var colToCheck = 3; //C
var lastsat = 100


function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Makrolarım')
      .addItem('Gizle', 'menuItem1')
      .addSeparator()
      .addSubMenu(ui.createMenu('Diğer')
          .addItem('Göster', 'menuItem2'))
      .addToUi();
}

function menuItem1() {
 hideShow()
    
}

function menuItem2() {
  showAllRows()
  }

////////////////////////////////////////////////////////


function hideShow() {
  var sh=SpreadsheetApp.getActive().getSheetByName('Sayfa1');
  //var rg=sh.getRange(startRow,colToCheck,sh.getLastRow(),1);
  var rg=sh.getRange(startRow,colToCheck,lastsat,1);
  var vA=rg.getValues();
  for(var i=0;i<vA.length;i++) {
    if(vA[i]!==  "") {
      sh.hideRows(i+startRow);
    }
    if(vA[i]!= '') {
      sh.showRows(i+startRow);
    }
  }
}

function showAllRows(){
    var sh=SpreadsheetApp.getActive().getSheetByName('Sayfa1');
    sh.showRows(1,sh.getLastRow());
}
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Sayın Hocam Teşekkür ederim.
1-Veriler formülle geliyor. Veri girdikçe otomatik açıp, veri silindikçe otomatik kapansın şeklinde nasıl yapabiliriz.
2-12 tane sayfaya uygulamak istiyorum. Sayfa1'i nasıl 12 sayfaya uyarlayabiliriz
 
Son düzenleme:
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Sayın Hocam Teşekkür ederim.
1-Veriler formülle geliyor. Veri girdikçe otomatik açıp, veri silindikçe otomatik kapansın şeklinde nasıl yapabiliriz.
2-12 tane sayfaya uygulamak istiyorum. Sayfa1'i nasıl 12 sayfaya uyarlayabiliriz
Anladığım kadarıyla belki bu şekilde olabilir. Ben sayfayı açınca script çalışsın dedim ama siz
onEdit
şeklinde de düzenleyebilirsiniz. Deneyin...


JavaScript:
function onOpen() {

SpreadsheetApp.getActiveSpreadsheet()
sayfalar()
}

function sayfalar(){
  var startRow = 10;

var s = SpreadsheetApp.getActiveSpreadsheet();
var sheets = s.getSheets();

for (var i in sheets) {
  var sheetname = sheets[i].getSheetName();
  if (sheetname !== 'Master') {  // Makronun çalışmasını istemediğimiz sayfaadı (varsa)
    var ss = s.getSheetByName(sheetname);
    ss.showRows(1,ss.getLastRow());
    var rg = ss.getRange("C10:C100");
    var vA=rg.getValues();
  for(var i=0;i<vA.length;i++) {
    if(vA[i]!==  "") {
      ss.hideRows(i+startRow);
    }
    if(vA[i]!= '') {
      ss.showRows(i+startRow);
    }
  }
}

  }
}
 
Son düzenleme:

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Hocam E tabloda Tetikleyici varmış o ayarları yapınca otomatik yapıyor.
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Makronun çalışmasını istemediğimiz sayfa (Sayfa2,Sayfa3,Sayfa4,Sayfa5....) ise nasıl yapabiliriz
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Makronun çalışmasını istemediğimiz sayfa (Sayfa2,Sayfa3,Sayfa4,Sayfa5....) ise nasıl yapabiliriz
JavaScript:
function bosSatirlariGizleme() {
  var startRow = 10;
  var values;
  SpreadsheetApp.getActiveSpreadsheet().getSheets().forEach(sh => {
    if (!['Tablo', 'Master'].includes(sh.getName())) { //Hariç sayfalar Tablo ve Master Büyük-Küçük Harf Duyarlı
      sh.showRows(10, sh.getLastRow());
      values = sh.getRange("C10:C100").getValues();
      for (var i = 0; i < values.length; i++) {
        if (values[i] == "") {
          sh.hideRows(i + startRow);
        }
      }
    }
  }
  )
}
JavaScript:
function bosSatirlariGizleme() {

  var startRow = 10;

  SpreadsheetApp.getActiveSpreadsheet().getSheets().forEach(sh => {

    if (!['Tablo', 'Master'].toLocaleString().toLocaleLowerCase().includes(sh.getName().toLocaleLowerCase())) {
      //Hariç sayfalar Tablo ve Master

      sh.showRows(10, sh.getLastRow());

      sh.getRange("C10:C100").getValues().forEach((elm, idx) => {
        if (elm == "") {
          sh.hideRows(idx + startRow);
        }
      })
    }
  }
  )
}
 
Son düzenleme:

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
function bosSatirlariGizleme() { var startRow = 10; var values; SpreadsheetApp.getActiveSpreadsheet().getSheets().forEach(sh => { if (!['Tablo', 'Master'].includes(sh.getName())) { //Hariç sayfalar Tablo ve Master Büyük-Küçük Harf Duyarlı sh.showRows(10, sh.getLastRow()); values = sh.getRange("C10:C100").getValues(); for (var i = 0; i < values.length; i++) { if (values == "") { sh.hideRows(i + startRow); } } } } ) }
Hocam eline sağlık teşekkür ederim tam istediğim gibi. Bunun aynısının sütün gizlemesini yapabilir miyiz. K7:Z7 satırları arasındaki hücreler boş ise K:Z sutunlarını gizlesin. Dolu ise göstersin. (örneğim, K7 hücresi dolu ise K sutunun göstersin, Z7 hücresi boş ise Z sutununu gizlesin)
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Kod:
function bosSutunlariGizleme() {

  var startColumn = 11;
  var sut;
  SpreadsheetApp.getActiveSpreadsheet().getSheets().forEach(sh => {

    if (!['Tablo', 'Master'].toLocaleString().toLocaleLowerCase().includes(sh.getName().toLocaleLowerCase())) {
      //Hariç sayfalar Tablo ve Master

      if (sh.getLastColumn() > 10) { sh.showColumns(11, sh.getLastColumn() - 10); }

      var contents = sh.getRange("K7:Z7").getValues()[0];

      contents.forEach((elm, idx) => {
        if (elm == "") {
          sut = idx + startColumn;
          if (sut < sh.getMaxColumns()+1) {
            sh.hideColumns(sut);
          }
        }
      })
    }
  }
  )
}
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Hocam çok teşekkür ederim ellerinize sağlık...
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Hocam Merhaba,
1.Aşağıdaki iki kodu nasıl tek kod altında yazabiliriz.
2.Bu kodlarda uygulamayacağı sayfaları tek tek yazıyoruz. Sadece uygulayacağı sayfayı yazsak olur mu?


function bosSutunlariGizleme2() {
var startColumn = 13;
var sut;
SpreadsheetApp.getActiveSpreadsheet().getSheets().forEach(sh => {
if (!['VERİLER','ÖĞRENCİ KİMLİK KARTI','DUYURU SAYFASI','YILLIK PLAN','DÖNEM SONU DEĞERLENDİRME','DERS DEĞERLENDİRME RAPORU','KABA DEĞERLENDİRME FORMU','EK-1A BEP EĞİTİM PLANI','EK-1 ÖLÇÜT BAĞIMLI TEST','EK-2 KONTROL LİSTESİ','EK-3 DERECELİ PUAN ANAHTARI','EK-4 PERFORMANS KAYIT FORMU','EK-5 BEP GELİŞİM İZLEME ÖZET FORMU','BEP KOMİSYON KARARI','BEP KOMİSYON KARAR TUTANAĞI','BÖP','DÖNEM SONU BAŞARI GRAFİĞİ','SONUÇ BİLDİRİM','AYLIK DEĞERLENDİRME'].toLocaleString().toLocaleLowerCase().includes(sh.getName().toLocaleLowerCase())) {
//Hariç sayfalar Tablo ve Master
if (sh.getLastColumn() > 13) { sh.showColumns(13, sh.getLastColumn() - 12); }
var contents = sh.getRange("M7:AJ7").getValues()[0];
contents.forEach((elm, idx) => {
if (elm == "") {
sut = idx + startColumn;
if (sut < sh.getMaxColumns()+1) {
sh.hideColumns(sut);
}
}
})
}
}
)
}

function bosSatirlariGizleme2() {
var startRow = 11;
SpreadsheetApp.getActiveSpreadsheet().getSheets().forEach(sh => {
if (!['VERİLER','ÖĞRENCİ KİMLİK KARTI','DUYURU SAYFASI','YILLIK PLAN','DÖNEM SONU DEĞERLENDİRME','DERS DEĞERLENDİRME RAPORU','KABA DEĞERLENDİRME FORMU','EK-1A BEP EĞİTİM PLANI','EK-1 ÖLÇÜT BAĞIMLI TEST','EK-2 KONTROL LİSTESİ','EK-3 DERECELİ PUAN ANAHTARI','EK-4 PERFORMANS KAYIT FORMU','EK-5 BEP GELİŞİM İZLEME ÖZET FORMU','BEP KOMİSYON KARARI','BEP KOMİSYON KARAR TUTANAĞI','BÖP','DÖNEM SONU BAŞARI GRAFİĞİ','SONUÇ BİLDİRİM','AYLIK DEĞERLENDİRME'].toLocaleString().toLocaleLowerCase().includes(sh.getName().toLocaleLowerCase())) {
//Hariç sayfalar Tablo ve Master
sh.showRows(11, sh.getLastRow());
sh.getRange("B11:B500").getValues().forEach((elm, idx) => {
if (elm == "") {
sh.hideRows(idx + startRow);
}
})
}
}
)
}
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Denenmemiştir.
JavaScript:
function bosSatirSutunGizleme() {
    var startColumn = 13;
    var sut;
    var startRow = 11;

    SpreadsheetApp.getActiveSpreadsheet().getSheets().forEach(sh => {
        if (['sayfa1', 'sayfa2'].toLocaleString().toLocaleLowerCase().includes(sh.getName().toLocaleLowerCase())) {
            //sayfa1,sayfa2 çalışacak sayfalara örnek
           
            // sutunlar
            if (sh.getLastColumn() > 13) { sh.showColumns(13, sh.getLastColumn() - 12); }
            var contents = sh.getRange("M7:AJ7").getValues()[0];
            contents.forEach((elm, idx) => {
                if (elm == "") {
                    sut = idx + startColumn;
                    if (sut < sh.getMaxColumns() + 1) {
                        sh.hideColumns(sut);
                    }
                }
            })
           
            // satirlar
            sh.showRows(11, sh.getLastRow());
            sh.getRange("B11:B500").getValues().forEach((elm, idx) => {
                if (elm == "") {
                    sh.hideRows(idx + startRow);
                }
            })
        }
    }
    )
}
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Hocam çok teşekkür ederim.Elinize sağlık.
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Sayın hocam merhaba,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim hucr As Range
If Intersect(Target, [k2:k800]) Is Nothing Then Exit Sub
Range("B4:I240").Interior.ColorIndex = 0
For Each hucr In Range("B4:I240")
If hucr.Value = Target.Value Then hucr.Interior.ColorIndex = 6
Next
End Sub
bu kodu nasıl js cevirebiliriz
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
JavaScript:
function onEdit(e) {
  var activeSheet = e.source.getActiveSheet();
  var tabs = ['Sayfa2', 'Sayfa3'];
  var columns = [11];
  var cell = e.range;
  if (cell.getValue() !== "") {
    if (tabs.indexOf(activeSheet.getName()) !== -1 && columns.indexOf(cell.getColumn()) !== -1) {
      if (cell.getRow() > 1 && cell.getRow() < 801) {
        var range = activeSheet.getRange("B4:I240");
        var bgColors = range.getBackgrounds();
        var araValue = cell.getValue();
        var data = range.getValues()
        for (var i = 0; i < bgColors.length; i++) {
          for (var j = 0; j < bgColors[i].length; j++) {
            bgColors[i][j] = null;
            if (data[i][j] == araValue) { bgColors[i][j] = "#ffff00"; }
          }
        }
        range.setValues(data).setBackgrounds(bgColors);
      }
    }
  }
}
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Hocam,
function onEdit(e) {
var activeSheet = e.source.getActiveSheet();
var tabs = ['DERSLER'];
var columns = [11];
var cell = e.range;
if (cell.getValue() !== "") {
if (tabs.indexOf(activeSheet.getName()) !== -1 && columns.indexOf(cell.getColumn()) !== -1) {
if (cell.getRow() > 10 && cell.getRow() < 801) {
var range = activeSheet.getRange("B4:I240");
var bgColors = range.getBackgrounds();
var araValue = cell.getValue();
var data = range.getValues()
for (var i = 0; i < bgColors.length; i++) {
for (var j = 0; j < bgColors.length; j++) {
bgColors[j] = null;
if (data[j] == araValue) { bgColors[j] = "#ffff00"; }
}
}
range.setValues(data).setBackgrounds(bgColors);
}
}
}
}

hocam Kod.gs:2 hatası veriyor.Hatanın üzerime tıklayınca
e.source.getActiveSheet() buraya gidiyor
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Tip Hatası: Tanımsız özelliğin 'kaynak' özelliği okunamıyor
Düzenle @ Kod.gs:2'de
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
Merhaba,Aşağıdaki Excel kodunu Google E tablo koduna (js) koduna çevirebilirmiyiz. Şimdiden teşekkür ederim
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 11 Then
If Target.Row > 9 And Target.Row < 251 Then
Cells(1, 11).Value = Target.Value
End If
End If
End Sub
 

Mahmut1976

Altın Üye
Katılım
22 Temmuz 2019
Mesajlar
32
Excel Vers. ve Dili
Ofis7
Altın Üyelik Bitiş Tarihi
11-03-2025
iyi akşamlar js den anlayan bir hocam varmı ?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 11 Then
If Target.Row > 9 And Target.Row < 251 Then
Cells(1, 11).Value = Target.Value
End If
End If
End Sub
 
Üst