• DİKKAT

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

Google E-Tablo VBA komutu

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,042
Excel Vers. ve Dili
2013 Türkçe
Arkadaşlar merhaba.
Google e-tablolarda, Excel VBA'daki "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" komutunun karşılığı var mı?
 
Kod:
function moveValuesOnly() {
........
//kodlarınız
//kodlarınız
...
}
Örnek:
VBA macro ile yazılmış bir kod:
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("D2")) Is Nothing Then
        With Sheets("Meeting")
            .Range("A1") = Cells(Target.Row, "B").Value
            .Range("B1") = Cells(Target.Row, "C").Value
        End With
    End If
End Sub
Aynı kodun Google Sheets Script karşılığı:
Kod:
function moveValuesOnly() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getRange('Client!B2:C2');
  source.copyTo(ss.getRange('Meeting!A1:A2'), {contentsOnly: true});
}
 
Sn antonio, cevap ve örneğiniz için teşekkür ederim. Sanırım bu google docs'un dili VBA'dan tamamen farklı. İşimi kolaylaştıracak bir dosya hazırlamaya çalışıyorum.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C2")) Is Nothing Then Exit Sub
x = WorksheetFunction.Match(Range("B2"), Range("B4:B19"), 0) + 3
If Range("C2") <> Range("C1").Offset(x - 1, 0) Then Exit Sub
Range("I4:AB19") = Range("I4:AB19").Value
Range("I" & x & ":AB" & x) = "=IF(INDIRECT(I2)="""","""",INDIRECT(I2))"
Range("E4").Select
End Sub

Google docs diline ne kadar hakimsiniz bilmiyorum ama size zahmet olmazsa bu kodları çevirebilir misiniz?
 

Ekli dosyalar

Sayın Okumuş,
Bu konuda sizin sorunuzu görmeden önce hiçbir fikrim yoktu.
İngilizce ile aranız nasıl bilmiyorum. Eğer iyiyse aşağıda belirttiğim video size bir fikir verebilir.
https://www.youtube.com/watch?v=mX2_XNYPGiI
(oldukça uzun olmakla beraber, google apps script kodlarının nasıl görüntülendiği, videonun 31:37 zaman çizgisinde örneklendiriliyor.)
Ben, yüzeysel ingilizcem ile google arama yerine: "convert vba to google apps script" yazdım, çıkan bir örneği sizinle paylaştım.
Anladığım kadarını sizinle hızlıca paylaşayım:
Öncelikle bir Gmail hesabına ihtiyacınız var. Bu hesabınıza giriş yaparak Drive seçeneğini tıklıyorsunuz.
VBA kodlarını içeren dosyanızı Drive olarak yükledikten sonra, sağ tıklayarak Google spreedsheet olarak açıyorsunuz. Dosyanızın bir doküman olarak değil tarayıcı sekmesinde açıldığını göreceksiniz. F12 tuşuna basarak kodlarına ulaşıyorsunuz. Anladığım kadarı ile, Google, otomatik olarak VBA kodlarını kendi script diline çevirmiş oluyor, siz de onların yeni halini bu şekilde izleyebiliyorsunuz.
Belki masaüstü başka araçları da vardır.
Google, kod arayüzü JavaScript diline çok benzeyen bir kodlama kullanıyor.
Ama ne yazık ki daha fazla bilgi sahibi değilim.
 
Son düzenleme:
Sn antonio; cevabınız için teşekkür ederim. İngilizcem çok da kötü sayılmaz. Soruyu sormadan önce ve cevabınızdan sonra araştırdım. Türkçe bilgiye hiç rastlamadım. VBA'dan farklı bir dil ama çok fazlası gerekli değil. Yukarıda yazdığım kısmı çevirmek benim için yeterli. Araştıracağım. Tekrardan teşekkür ederim.
 
Rica ederim. Kolay gelsin..
 
Dosyayı oluşturdum. Düğmeye makro atadım. Bilgisayarda çalışıyor ama telefonda komut dosyası çalışmıyor. Acaba telefonda çalışmıyor mu, yoksa başka yöntem var mıdır?
 
Bana Aşağıdaki Kodlamayı Google E Tabloda Kullanılabilecek şekilde Ayarlayabilen Bir arkadaş Varmı acaba

Private Sub Worksheet_Change(ByVal Target As Range)
Dim res As String
Dim a As Shape
Dim AV6 As Range
If Target = "" Or Target.Address <> "$AV$6" Then Exit Sub
If Target.Count > 1 Then Exit Sub
Set AU2 = Range("AU2")
For Each a In Shapes
a.Delete
Next a
AU2.ClearContents
res = "C:\Users\Serhat\Desktop\18.01.2017\Puntaj.jpeg\" & Target & ".jpg"
If Dir(res) = "" Then
AU2 = "RESİM YOK"
Else
With ActiveSheet.Pictures.Insert(res)
.Left = AU2.Left
.Top = AU2.Top
.Height = AU2.Height
.Width = AU2.Width
End With
End If
End Sub
 
Geri
Üst