Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1336to1340
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

google Spreadsheet - Macro

google Spreadsheet - Macro
08.11.2013 13:51:24
e-mo
Hallo alle zusammen,
ich habe in google ein online spreadsheet erstellt...damit ich das mit anderen usern teilen kann. Habe eine Tabelle erstellt..wo die users ihren status per Auswahlmöglichkeit ihren Status angeben können, mit "Ja" und "Nein"...eigentlich sehr simple...
unter dieser Tabelle habe ich ein bereich eingeführt...eine Art Kommentarfeld...wo die user pro Zeile ihren kommentar eintragen können
d.h. ab Zeile 29 Spalte A, können die User ihren Namen per Dropdown wählen, Spalte B...ihren kommentar eingeben
d.h. auch...dass jedesmal..wenn jemand ein kommentar geben möchte...die nächste zeile anwählen muss etc etc...somit ist der neueste Kommentar also immer ganz unten...was ich nicht mehr will.
Jetzt habe ich im Feld K28 ein Bild/Button hinzugefügt "Kommentar hinzufügen"..dass beim anklicken dieses Buttons, eine neue Zeile 29 hinzugefügt wird, und die vorhandenen Kommentare somit alle um eine Zeile nach unten rutschen. Das Dropdown mit den Namen soll erhalten bleiben... :-)
Bitte um Hilfe...
danke,
e-mo

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: google Spreadsheet - Macro
11.11.2013 09:36:02
fcs
Hallo e-mo,
in bin mir nicht sicher, ob Makros unter google Spreadsheet fuktionieren.
Ein entsprechendes Makro unter Excel sieht wie folgt aus. Dieses musst du dann deinem Bild/Button zuweisen bzw. von dem zugehörigen Ereignismakro starten.
Gruß
Franz
'Code in einem Allgemeinen Modul
Sub NeueKommentarzeile()
Dim wks As Worksheet
Dim Zeile As Long
Set wks = ActiveSheet 'oder Activeworkbook.Worksheets("Tabelle1")
Zeile = 29
With wks
With .Rows(Zeile)
If Application.WorksheetFunction.CountA(.Cells) > 0 Then
.Copy
.Insert shift:=xlShiftDown
.Offset(-1, 0).ClearContents
End If
End With
.Cells(Zeile, 1).Select
End With
End Sub

Anzeige
AW: google Spreadsheet - Macro
11.11.2013 13:31:14
e-mo
Hallo fcs...
vielen Dank, aber leider hat es nicht funktioniert.
Habe aber in deren library folgendes gefunden:

function InsertThreeEmptyRows() {
var sheet = SpreadsheetApp.getActiveSheet("Badminton");
var firstRowPosition = sheet.getActiveCell().getRow();
for (var i = 0; i 
könntest du das so "umbauen"?
Danke,
e-mo

AW: google Spreadsheet - Macro
11.11.2013 15:47:48
fcs
Hallo e-mo,
ich kenne mich mit der Syntax nicht aus. Betrachte meine Anpassung also als gut gemeinten Versuch.
"Badminton" muss du dann durch den tatsächlichen Namen des Tabellenblatts ersetzen.
Gruß
Franz
function KommentarzeileEinfuegen() {
var sheet = SpreadsheetApp.getActiveSheet("Badminton");
var firstRowPosition = 29;
for (var i = 0; i 

Anzeige
AW: google Spreadsheet - Macro
12.11.2013 09:02:11
e-mo
Morgen fcs...and alle anderen :-)
so, ich habe das eingebunden, und das mit "Badminton" war bereits von mir eingefügt...hat aber leider nicht so funktioniert, so dass ich Badminton rausnehmen musste...dann hat es mehr oder weniger funktioniert....
es ist noch nicht so, wie ich das gerne hätte..
z.B.
Derzeit ist aber Spalte A29 eine Datenüberprüfung drin (Liste), wo man den User per Dropdown aussuchen kann. die Zellen B29 bis J29 sind verbunden.
Wenn ich das Script ausführe, dann fügt es mir eine blanke Zeile, wo die Formate nicht mehr vorhanden sind, d.h. Datenprüfung und verbundene Zellen.
Habe ein script zur Validierung gefunden, habe versucht das einzubinden..bin aber irgendwie gescheitert..
 // Set the data validation for cell A1 to require a value from B1:B10, with a dropdown menu.
var cell = SpreadsheetApp.getActive().getRange('A1');
var range = SpreadsheetApp.getActive().getRange('B1:B10');
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);
Habe das so ergänzt:
function Kommentar() {
var sheet = SpreadsheetApp.getActiveSheet();
var firstRowPosition = 29;
for (var i = 0; i 
resultat = funktioniert nicht :-) das script added trotzdem nur eine leere zeile...
und die zellen zusamenfügen habe ich auch noch nicht gefunden
script für verbinden der zellen:
 var sheet = SpreadsheetApp.getActiveSheet();
// The code below will 2-dimensionally merge the cells in A1 to B3
sheet.getRange('A1:B3').merge();
kann man die code teile zusammenfügen zu einen code?
danke schonmal vorab,
e-mo

Anzeige
AW: google Spreadsheet - Macro
12.11.2013 13:16:49
fcs
Hallo e-mo,
ich hab mal versucht mich ein wenig in die Google-Spreadsheet-Scriptsprache einzulesen.
Danach sollte das folgende Script funktionieren. Es funktioniert dann ähnlich wie mein Excel-Makro.
Gruß
Franz
function Kommentar() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
//Blatt für Kommentareinträge setzen
var sheet = ss.getSheetByName("Blattname");
//Blatt für Kommentareinträge aktivieren
sheet.activate();
var firstRowPosition = 29;
// Leerzeile vor Zeile 29 einfügen
sheet.insertRowBefore(firstRowPosition);
//Kopieren von alter Zeile 29 in neue Zeile 29
var Zeile = sheet.GetRange(firstRowPosition + 1, 1, 1, sheet.getmaxcolumns());
Zeile.copyTo(sheet.getRange(firstRowPosition, 1));
//Löschen der Werte in neue Zeile 29.
var Zeile = sheet.GetRange(firstRowPosition, 1, 1, sheet.getmaxcolumns());
Zeile.clear({contentsOnly: true});
sheet.getRange(firstRowPosition, 1).activate();
};

Anzeige
AW: google Spreadsheet - Macro
12.11.2013 14:32:10
e-mo
Hallo Franz,
habe dein script dort hineinkopiert.
Eine Zeiel wurde eingefügt, aber nur der "standardausgang", d.h. kein dropdown..und die zellen sind auch noch nicht verbunden.
außerdem erhalte ich auch bei der ausführung folgender fehler:
"TypeError: Cannot find function GetRange in object Sheet."
e-mo

AW: google Spreadsheet - Macro
12.11.2013 14:16:39
e-mo
Hallo alle zusammen,
habe jetzt etwas rumgespielt...und folgendes geschafft:
- verbindung von Zellen
- einfügen einer Zeile
und zwar hiermit:
function Kommentar() {
var sheet = SpreadsheetApp.getActiveSheet();
var firstRowPosition = 29;
for (var i = 0; i 
Leider funktioniert die referierte Validierung noch nicht, und ich bekomme auch noch zusätzlich folgenden Fehler: "TypeError: Cannot find function getSheetByName in object Sheet."
e-mo

Anzeige
AW: google Spreadsheet - Macro
12.11.2013 15:08:04
fcs
Hallo e-mo,
da hat die Macht der Gewohnheit bei Excel zugeschlagen.
In den Beispelen die ich gefunden hab finden sich für Stringwerte sowohl ' als auch " als Einfassungszeichen.

probiere mal in der Forme
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Blattname');

Gruß
Franz

AW: google Spreadsheet - Macro
13.11.2013 11:01:57
e-mo
Hallo Franz,
ich glaube dein Feedback und mein feedback haben sich überkreuzt....habe nicht mitbekommen, dass du ein script geschickt hast.
Habe im nachgang dein script auch getestet...ging leider auch nicht...
zu deinem letzten feedback, galt:
probiere mal in der Forme
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Blattname');
zu deinem script oder das script was ich da zusammengebastelt habe?
zu der abänderung erhalte ich folgende Meldung:
"TypeError: Cannot find function GetRange in object Sheet."
Dann hatte ich irgendwann noch eine meldung mit "...cannot...activate NULL".. (kann den fehler irgendwie nicht reproduzieren...
e-mo

Anzeige
AW: google Spreadsheet - Macro
13.11.2013 13:59:42
e-mo
Hallo Franz...
es hat endlich geklapp :-)
vielen Dank für den Support!
e-mo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige