freshman2017
Goto Top

Excel-Zellen addieren

Guten Abend an alle,

ich möchte gerne am besten über Batch oder Shell Zellen ab A2 und B2 zusammenrechnen.Das Ergebnis soll in Spalte C stehen. Ist da was möglich mit Batch oder Shell?

Beste Grüße.

Content-ID: 472018

Url: https://administrator.de/forum/excel-zellen-addieren-472018.html

Ausgedruckt am: 03.04.2025 um 08:04 Uhr

em-pie
em-pie 11.07.2019 um 22:49:01 Uhr
Goto Top
Moin,

Habe kein fertiges Script zur Hand, was aber gut ist - für dich, da nachhaltiger face-wink

Such' mal im WWW nach Excel und Powershell. Damit kannst du Exceldokumente hervorragend bearbeiten.
Alternativ ginge auch vbs, dann musst du per Batch nur das vbs-Script aufrufen

Gruß
em-pie
freshman2017
freshman2017 12.07.2019 um 09:13:05 Uhr
Goto Top
Moin em-pie,

vielen Dank für Deine Rückmeldung. Hatte schonnmal hier im Forum gesucht, aber leider nichts gefunden.
SlainteMhath
SlainteMhath 12.07.2019 um 09:21:54 Uhr
Goto Top
Moin,

About 3.140.000 results (0,49 seconds)
https://www.google.com/search?q=read+and+write++excel+with+powershell

lg,
Slainte
colinardo
Lösung colinardo 12.07.2019 aktualisiert um 09:36:43 Uhr
Goto Top
Servus @freshman2017,
Damit hier ab und zu mal wieder was konstruktives steht als nur noch Verweise zu Google weil man meint zu jedem Thread was schreiben zu müssen um Punkte zu sammeln, bitte:
back-to-topVBS:
strPfad = "D:\freshman2017\mappe.xlsx"  
Set objExcel = CreateObject("Excel.Application")  
objExcel.DisplayAlerts = False
objExcel.Visible = True
With objExcel.Workbooks.Open(strPfad).Sheets(1)
	.Range("C2").Formula = "=$A2+$B2"  
	.Range("C2").AutoFill .Range("C2:C" & .Cells(.Rows.Count,"A").End(-4162).Row)  
	.Parent.Save
	.Parent.Close True
End With
objExcel.DisplayAlerts = True
objExcel.Quit()
back-to-topPowershell
# Quelldatei
$quelle = 'D:\freshman2017\mappe.xlsx'  
# Excel Objekt
$objExcel = New-Object -Com Excel.Application
# Mappe öffnen
$wb = $objExcel.Workbooks.Open($quelle)
# Excel anzeigen
$objExcel.Visible = $true
$objExcel.DisplayAlerts = $false
# Arbeitsblatt definieren
$ws = $wb.Sheets.Item(1)
# Formel in C2 eintragen
$ws.Range("C2").Formula = '=$A2+$B2'  
# Autofill der Formeln in Spalte C vornehmen
$ws.Range("C2").AutoFill($ws.Range("C2:C" + $ws.Cells($ws.Rows.Count,"A").End(-4162).Row))  
# Datei speichern
$wb.Save()
$objExcel.DisplayAlerts = $true
# Dokument schließen
$wb.Close($false)
# Excel schließen
$objExcel.Quit()
# Ressourcen freigeben
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($objExcel)
Grüße Uwe
freshman2017
freshman2017 12.07.2019 um 09:59:46 Uhr
Goto Top
Servus Uwe,

was kann ich tun, dass das VBS Script im Hintergrund arbeitet und die Excel Sheet im Hintergrund bearbeitet? In der Spalte C stehen jetzt die Formeln und nicht die Werte, kann man das auch anpassen? face-smile
colinardo
colinardo 12.07.2019 aktualisiert um 10:06:59 Uhr
Goto Top
Zitat von @freshman2017:
was kann ich tun, dass das VBS Script im Hintergrund arbeitet
und die Excel Sheet im Hintergrund bearbeitet?
Wofür steht wohl Zeile 4?! Genau, damit steuerst du das, True für sichtbar, False für unsichtbar.
objExcel.Visible = False

In der Spalte C stehen jetzt die Formeln und nicht die Werte, kann man das auch anpassen? face-smile
Ja schalte in deinem Excel die Anzeige der Formeln statt der Werte ab.
Geht hier einwandfrei.
Kraemer
Kraemer 12.07.2019 um 11:07:53 Uhr
Goto Top
Moin,
Zitat von @freshman2017:
ich möchte gerne am besten über Batch oder Shell Zellen ab A2 und B2 zusammenrechnen.Das Ergebnis soll in Spalte C stehen. Ist da was möglich mit Batch oder Shell?
ohne eine Krücke über Excel zu bauen, nur, wenn die Spalten überschriften haben.

Mit ImportExcel für Powershell würde dass dann so aussehen:

$xlsx=Import-Excel -Path "C:\Temp\Admin.xlsx" -WorksheetName "Tabelle1"  
ForEach ($Line in $xlsx){
    $Line.SpalteC=$Line.SpalteA+$Line.SpalteB
}
$xlsx | Export-Excel -Path "C:\Temp\Admin.xlsx" -WorksheetName "Tabelle1"