Moin moin,
Versuche aus einer Tabelle Zeilen zu löschen die eine bestimmte Summe haben.
Spoiler anzeigen
$Zeilenanzahl = $oExcel.ActiveSheet.Cells($oExcel.Rows.Count, 1).End(-4162).Row ; -4162 = xlUp
$Zeilenanzahl2 = $oExcel.ActiveSheet.Cells($oExcel.Rows.Count, 3).End(-4162).Row
$Spaltenanzahl = $oExcel.ActiveSheet.Cells(10, $oExcel.Columns.Count).End(-4159).Column
Func nullzeilenloeschen()
For $Zeilen = $Zeilenanzahl To 8 Step -1
While 1
$wandeln2 = _ColNrToLetter($Spaltenanzahl)
If $Spaltenanzahl = 4 Then ExitLoop
$Spaltenanzahl = $Spaltenanzahl-1
If $oExcel.Application.Sum($oExcel.Cells($Zeilen, $wandeln2).Resize($Zeilenanzahl,1)) = 0 Then
$oExcel.Columns($wandeln2 & ":" & $wandeln2).Select
$oExcel.Selection.Delete.Shift = -4161
EndIf
WEnd
Next
EndFunc;==>nullzeilenloeschen
Func _ColNrToLetter($iColNr)
If $iColNr <= 26 Then Return Chr($iColNr+64)
$iColNr -= 26
Local $1 = 65, $2 = 90, $tmp, $diff = 1
$tmp = Mod($iColNr,26)
If $tmp Then
$2 = 64 +$tmp
$diff = 0
EndIf
$1 += Int($iColNr/26) - $diff
Return Chr($1) & Chr($2)
EndFunc
Das geht auch so weit.
Nur wenn ich das selbe Variabel gestalte also anstatt der festen 0 eine Variable benutze geht es nicht.
Spoiler anzeigen
$Zeilenanzahl = $oExcel.ActiveSheet.Cells($oExcel.Rows.Count, 1).End(-4162).Row
$Zeilenanzahl2 = $oExcel.ActiveSheet.Cells($oExcel.Rows.Count, 3).End(-4162).Row
$Spaltenanzahl = $oExcel.ActiveSheet.Cells(10, $oExcel.Columns.Count).End(-4159).Column
$rech = $Zeilenanzahl -7
$rechnung = -99 * $rech
Func neunundneun()
For $Zeilen = $Zeilenanzahl To 7 Step -1
While 1
$wandeln2 = _ColNrToLetter($Spaltenanzahl)
If $Spaltenanzahl = 4 Then ExitLoop
$Spaltenanzahl = $Spaltenanzahl-1
If $oExcel.Application.Sum($oExcel.Cells($Zeilen, $wandeln2).Resize($Zeilenanzahl,1)) = $rechnung Then
$oExcel.Columns($wandeln2 & ":" & $wandeln2).Select
$oExcel.Selection.Delete.Shift = -4161
EndIf
WEnd
Next
EndFunc;==>neunundneun
Func _ColNrToLetter($iColNr)
If $iColNr <= 26 Then Return Chr($iColNr+64)
$iColNr -= 26
Local $1 = 65, $2 = 90, $tmp, $diff = 1
$tmp = Mod($iColNr,26)
If $tmp Then
$2 = 64 +$tmp
$diff = 0
EndIf
$1 += Int($iColNr/26) - $diff
Return Chr($1) & Chr($2)
MsgBox(0,"$iColNr",$iColNr)
EndFunc
Das Ergebnis von $rechnung ist so weit richtig in diesem Fall -11781 nur löscht er mir die zeilen halt nicht.
Kann es sein das autoit mit dem (-) Zeichen nicht klar kommt ?
Hatte es auch schon in klammern ( $rechnung ) versucht mit dem selbigen ergebnis.
mfg
oh-ha