Google Sheets Sayfasında Belirli Bilgileri Göstermek

Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020
@Haluk Bey ve bu konuyla ilgili diğer arkadaşlara bir konuda danışmak istiyorum



Öncelikle E-tablodaki bilgiler gerçek dışı bilgilerdir.

Öğrenciler Google Form aracılığıyla test sonuçlarını gönderiyorlar.

Sonuçlar Tablo da bu şekilde görünmektedir.

Ancak öğrenciler gönderdiklerinde gidip gitmediğini bilmiyorlar ya bize sürekli gelip gelmediğini soruyorlar ya da birden fazla sonuç gönderiyorlar.

Bu durumu önlemek için bu şekilde bir çözüm buldum. Ancak linkte herhangi bir silme vb. tüm sonuçları görmelerine sebep olabiliyor.

Bu bilgiler dışında diğer bilgilere ulaşamayacak bir metotla nasıl sadece gönderen kişinin ad soyad sınıf ve numara bilgisini gösterebiliriz?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ücretli destek isterseniz özel mesajla görüşebiliriz...

.
 
Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020
Ücretli destek isterseniz özel mesajla görüşebiliriz...

.
Haluk bey öncelikle destekleriniz için çok teşekkürler. Şuan hala sizin yazmış olduğunuz vba kodlarını kullanıyor ve bu kodlar üzerine dosyama ek özellikler ekleyerek geliştiriyorum.

Amacım öğretmen arkadaşlara işlerini daha kolay çözmek ve devlet okulunun bir adım daha ileriye götürmek.

Bu dosyayı da herkesle paylaşıyorum.

Burada amaç hem bilgimi artırmak hem de canlı bir örnek-senaryodan hareket etmek.

Bundan dolayıdır ki ücretli destek ihtiyacı duymadım çünkü amaç arkadaşlara ve okula hizmet etmek ve öğrenmek.

Elbetteki bilginin karşılığını vermek taraftarıyım fakat bu konuda bahsi geçen konunun bir acelesi, ticari kaygısı vb. olmadığı için ücretli destek sonucunda çıkan çalışma bize ek bir fayda sağlamayacaktır. Ancak böyle bir ihtiyaç duyduğumuzda ilk müracatımız siz olacaksınız
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Tamam o zaman .... pratik birşey aklıma gelirse size haber veririm.

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Gerçi, Form yollandıktan sonra zaten bir uyarı mesajı çıkar kullanıcının ekranında.... bu yeterli olmuyor mu?

.
 
Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020
Gerçi, Form yollandıktan sonra zaten bir uyarı mesajı çıkar kullanıcının ekranında.... bu yeterli olmuyor mu?

.
Bunlar 5. sınıf öğrencisi küçük oldukları için meraklılar 10 defa soruyorlar :)
 
Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
O zaman, işinizi görüyor demektir...

Nasıl yapıldığını biliyorsanız, anlatmama gerek yok.... eğer değilse, haber verin ayrıca açıklama yapayım.

.
 
Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020
O zaman, işinizi görüyor demektir...

Nasıl yapıldığını biliyorsanız, anlatmama gerek yok.... eğer değilse, haber verin ayrıca açıklama yapayım.

.
Henüz belirli sütunların gösterilip diğerlerinin nasıl gizlenildiğini bilmiyorum
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Aynı dosyada "Ozet" isimli bir sayfa oluşturdum ve A1 hücresine aşağıdaki formülü yazdım;

C#:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/180EETLXFi_Rb4suzag3lLudJAXXXL5nnWOxNsMxpZxw/edit#gid=1336508781";"Form Yanıtları 1!A1:C")

Formüldeki "https://docs.google.com/spreadsheets/d/180EETLXFi_Rb4suzag3lLudJAX....." kısmını siz kendi dosyanızın URL'i ile değiştireceksiniz tabii.....

Daha sonra, kişisel blog'umda aşağıdaki linkte anlattığım gibi dosyayı web'de yayınlarken sadece söz konusu "Ozet" sayfayı seçtim.


Başka bir yöntem de, dediğiniz gibi sütunları gizleyerek olabilir. Bunun için de; görünmesini istemediğiniz tüm sütunları seçin (F ~ O) daha sonra bu sütunlardan herhangibirinin üzerindeki sütun harflarinin olduğu yerde fare ile gelin, sağ tarafta bir ok belirecektir. Bunu tıklayıp, açılan menü listesinden seçili sütunları gizleyebilirsiniz. Daha sonra da bu sayfayı web'de yayınlarsınız....

.
 
Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
@merrrakli başka bir forumda yine 100 satırdan fazlasını alamadığınızı belirtmişsiniz ve yardım istemişsiniz. Daha önce de sorduğunuz sorularda 100 sınırının nasıl aşılacağını hem ben hem de Haluk bey açıklamıştı. Ama siz sanırım ya denemediniz, ya da yapamadınız.

O yönteme alternatif olarak aşağıdaki kodu yazdım. Yukarıda linkini vermiş olduğunuz tablodan 106 tane öğrencinin yanıtlarını excele atıyor.
JSON verisi JScript ile parse edilmiştir. Exceliniz 64 bit ise çalışmayacaktır. O şekildeyse yarın regexp ile parse edilmiş halinide yazarım.

Kod:
Const url1 = "https://docs.google.com/spreadsheets/d/1nk6EU73sBa738NsKevdcPdvZgij16lfw_MHKaKJNlIA/gviz/tq"
Const url2 = "https://docs.google.com/spreadsheets/d/1nk6EU73sBa738NsKevdcPdvZgij16lfw_MHKaKJNlIA/gviz/tq?tq=SELECT A,B,C"
Const url3 = "https://docs.google.com/spreadsheets/d/1nk6EU73sBa738NsKevdcPdvZgij16lfw_MHKaKJNlIA/gviz/tq?tq=SELECT *"

Sub googleDriveDosyaListesiAl()
    Dim response$, retVal As Object, myTable As Object, _
    sat&, sut%, col As Object, rw As Object, cl As Object, c As Object
    
    With CreateObject("Msxml2.ServerXMLHTTP.6.0")
        .Open "GET", url1, False
        '.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
        .send ""
        response = Replace(Mid(.responseText, 48), ");", "")
        response = Replace(response, "table", "myTable")
        response = Replace(response, "rows", "rws")
        response = Replace(response, "label", "lbl")
    End With
    
    Cells.ClearContents
    
    With CreateObject("MSScriptControl.ScriptControl")
        .Language = "JScript"
        Set retVal = .Eval("(" & response & ")")
    End With
    Set myTable = retVal.myTable
        
    For Each col In myTable.cols
        sut = sut + 1
        Cells(1, sut).Value = col.lbl
    Next
    sat = 2
    
    For Each rw In myTable.rws
        Set cl = rw.c
        sut = 1
        For Each c In cl
            If sut = 1 Then
                Cells(sat, sut).Value = c.f
            Else
                Cells(sat, sut).Value = c.v
            End If
            sut = sut + 1
        Next c
        sat = sat + 1
    Next
    
    ActiveSheet.Columns.AutoFit
End Sub
 
Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020
@merrrakli başka bir forumda yine 100 satırdan fazlasını alamadığınızı belirtmişsiniz ve yardım istemişsiniz. Daha önce de sorduğunuz sorularda 100 sınırının nasıl aşılacağını hem ben hem de Haluk bey açıklamıştı. Ama siz sanırım ya denemediniz, ya da yapamadınız.
Haluk bey XMLHTTP nesnesiyle almış bu yöntemi kullanmak istemedim çünkü denemedim ama daha yavaş veri getireceğini düşünüyorum
Google Visualization API Query ile çok daha hızlı veri çekiliyor.

Aşağıdaki kodla bu sınırı aştım

C#:
Sub GetData()
'   Haluk - 16/04/2020
'   sa4truss@gmail.com
    Dim myURL As String, mySh As Worksheet

    Application.DisplayAlerts = False

    For i = 1 To Sheets.Count
        If Sheets(i).Name = "Data" Then Sheets(i).Delete
    Next

    myURL = Sheets("Veri").Range("C1").Text
    myURL = myURL & "/gviz/tq?tqx=out:csv&sheet=1"


    Set mySh = Worksheets.Add(After:=Sheets(Sheets.Count))
    mySh.Name = "Data"

    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & myURL, Destination:=Range("$A$1"))
        .Name = "myTable"
        .TextFilePlatform = 65001
        .SaveData = False
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .Refresh BackgroundQuery:=False
    End With


    Rows(1).Delete
    'Columns(1).Delete 'SÜTUN

'    Call ImportData
    Call ImportData2

    Sheets("Tüm").Activate

    MsgBox "Veriler Çekildi ve İlgili Kişilere Eklendi" & vbCrLf & vbCrLf & "İşlem Tamamlandı.", vbInformation, "::.. Ahteri İHO ..::"


End Sub
linkin sonuna gviz/tq?tqx=out:csv&sheet=1 ekleyip csv formatında sınırsız çekiliyor
Aşağıdaki kısımda düzenlendi
C#:
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & myURL, Destination:=Range("$A$1"))
        .Name = "myTable"
        .TextFilePlatform = 65001
        .SaveData = False
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .Refresh BackgroundQuery:=False
    End With
Excelim 64 bit :(
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Option Explicit
Const url1 = "https://docs.google.com/spreadsheets/d/1nk6EU73sBa738NsKevdcPdvZgij16lfw_MHKaKJNlIA/gviz/tq?tqx=out:csv&sheet=1"

Sub googleDriveVeriAl()

    Dim response$, sat&, sut%, satV, sutV

    Application.DisplayAlerts = False

    Sheets("Data").Select
    Cells.ClearContents
   
    With CreateObject("Msxml2.ServerXMLHTTP.6.0")
        .Open "GET", url1, False
        .send
        response = .responseText
    End With
   
    For Each satV In Split(response, vbLf)
        sut = 1
        sat = sat + 1
        For Each sutV In Split(satV, ",")
            Cells(sat, sut).Value = Replace(sutV, """", "")
            sut = sut + 1
        Next
    Next
    Application.ScreenUpdating = True
   
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Haluk bey XMLHTTP nesnesiyle almış bu yöntemi kullanmak istemedim çünkü denemedim ama daha yavaş veri getireceğini düşünüyorum
Google Visualization API Query ile çok daha hızlı veri çekiliyor.
.......
.....
Veysel Beyle beni karıştırdınız galiba.....

Olabilir, sık sık oluyor..... :)

.
 
Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020
Veysel Beyle beni karıştırdınız galiba.....

Olabilir, sık sık oluyor..... :)

.
Haluk bey

C#:
    URL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vTvUCvBYMV9EK********tfq-FFbkr2wL8RfqdMShFmIizwDfChUATXF28RyfoW2/pubhtml?gid=0&single=true"
  
    Set HTTP = CreateObject("MSXML2.ServerXMLHTTP")
    Set HTML = CreateObject("HTMLFILE")
buraya baktığımda sizde XMLHTTP ile verileri çekmişsiniz ben mi yanılıyorum bilemedim
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Evet .... XMLHTTP

.
 
Üst