Google Tabelle Daten in anderes Blatt eintragen

  • Sonstige

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Google Tabelle Daten in anderes Blatt eintragen

    Servus Miteinander,

    ich arbeite seit neuestem mit google Tabellen, da viele leute dort Informationen herausholen müssen. Jetzt will ich, wenn sich in dem Blatt A sich ein wert ändert sich auf Blatt B Werte innerhalb des Blatt B kopiert.

    hier mein bisheriger Code:

    Quellcode

    1. //Bei Editierung der Tabelle
    2. function onEdit(edit) {
    3. var s = SpreadsheetApp.getActiveSheet();
    4. var c = s.getActiveCell();
    5. //überprüfung änderung in Blatt "Einlagerung" erfolgt ist
    6. if(s.getName() == 'Einlagerung'){
    7. // ab hier überprüfung in welcher Zelle die änderung statt gefunden hat
    8. if(c.getColumn() == '6' && c.getRowIndex() == '4'){
    9. eisen();
    10. }
    11. if(c.getColumn() == '6' && c.getRowIndex() == '6'){
    12. kupfer();
    13. }
    14. if(c.getColumn() == '6' && c.getRowIndex() == '8'){
    15. gold();
    16. }
    17. if(c.getColumn() == '6' && c.getRowIndex() == '10'){
    18. silber();
    19. }
    20. if(c.getColumn() == '6' && c.getRowIndex() == '12'){
    21. titan();
    22. }
    23. if(c.getColumn() == '6' && c.getRowIndex() == '14'){
    24. kohle();
    25. }
    26. if(c.getColumn() == '6' && c.getRowIndex() == '16'){
    27. sphalerit();
    28. }
    29. }else{
    30. }
    31. };
    32. function eisen() {
    33. //Hier muss ich denke ich mal das Blatt auswählen in welche man weiterarbeiten soll
    34. var spreadsheet = SpreadsheetApp.getActive().getSheetByName('ProduktionSollIst');
    35. //Definierung der Range für die neue eintragung
    36. spreadsheet.getRange('M16:O16').activate();
    37. //Erstellung der neuen Zeile
    38. spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
    39. spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
    40. //Anpassung der Formate
    41. spreadsheet.getRange('M16').activate();
    42. spreadsheet.getActiveRangeList().setNumberFormat('dd.MM.yyyy HH:mm:ss');
    43. spreadsheet.getRange('N16').activate();
    44. spreadsheet.getActiveRangeList().setNumberFormat('@');
    45. spreadsheet.getRange('O16').activate();
    46. spreadsheet.getActiveRangeList().setNumberFormat('[$$]#,##0.00');
    47. //Kopieren des Materials
    48. spreadsheet.getRange('N16').activate();
    49. spreadsheet.getRange('A3').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
    50. //Kopieren des Preises
    51. spreadsheet.getRange('O16').activate();
    52. spreadsheet.getRange('G3').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
    53. //Einfüges des Datumes
    54. spreadsheet.getRange('M16').activate();
    55. spreadsheet.getActiveRangeList().setNumberFormat('dd.MM.yyyy');
    56. spreadsheet.getActiveRange().setValue(Utilities.formatDate(new Date(), 'GMT +1', 'dd-MM-yyyy'))
    57. };


    ich hoffe ich konnte es gut erklären ?(
    @trix0 Hast ja lange gebraucht, Deinen ersten Beitrag zu schreiben. ;)
    Ganz gewiss verwendest Du eine hier eingetragene Programmiersprache, wähle die korrekt aus: { C++, C# }.
    Offensichtlich bist Du am Unterforum Sonstige Problemstellungen vorbeigeschrfammt, da muss dann Dein Thread hin verschoben werden.
    Vielleicht wäre es gut, wenn Du beschreiben würdest, wo genau Deine Daten hin sollen, Google ist es ja wohl nicht.
    c.getColumn() und c.getRowIndex() solltest Du in Variablen packen, und wenn Du mit

    Quellcode

    1. if(...)
    2. {
    3. }
    4. else if(...)
    5. {
    6. }
    7. else if(...)
    8. {
    9. }
    arbeitest, läuft der Code etwas schneller und ist freundlicher zu debuggen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    erstmal danke ^^

    also ich saß seit gestern an meinem Problem dran. und genau wo ich mein Problem hier geschildert habe, habe ich die lösung gefunden....

    ja ich bin noch nicht ganz fertig. wichtig ist mir nur gerade das der Code das tun soll was ich will. danach mach ich mir über die schnelligkeit gedanken :D

    das was ich wollte war, wenn sich im Blatt 1 sich was in bestimmten Zellen sich der Wert ändert, in Blatt 2 (Hier Produktion Soll/Ist) Daten aus Zellen (welche in Blatt 2 sind) in Blatt 2 in andere Zellen zu kopieren. das soll dann mit einem Zeitstempel verbunden sein :)
    hier dann noch die lösung:

    Java-Quellcode

    1. var spreadsheet = SpreadsheetApp.getActive();
    2. spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Produktion Soll/ist'));
    @trix0 Wenn die Lösung korrekt gefunden werden soll, gib diesem Deinem Thread die korrekte Programmiersprache.
    Oben auf Thema bearbeiten klicken.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!