von campino13 » Sa, 01.02.2020 14:32
			
			
			Ich bin nicht der versierteste Programmierer, daher habe ich eine Frage:
Warum bekomm ich hier immer nur den letzten Wert in die Tabelle eingetragen und nicht jeweils pro Zeile das berechnet, was ich gerne hatte? Also für jedes Zeile den entsprechenden Wert?
REM Umsatzübersicht
OPTION EXPLICIT
Sub Main
'Deklaration
  CONST min = 1 'Minimum, Anzahl der Produkte
  CONST max = 4 'Maximun, Anzahl der Produkte
  CONST ueb = "Umsatz mit Prozentanteilen" 'Überschrift
  
  DIM y AS integer 'Zeilenoffset
  DIM i AS integer 'Hilfsvariable, Zusammenhang mit Anzahl  der Produkten
  DIM Umsatz AS single 'Umsatz der Produkte
  DIM USumme AS single 'Umsatzsumme
  DIM PAnteil AS single 'prozentualer Anteil
 
'initialisieren/Zeilenoffset
  y = 2
  
'Tabelleninhalte löschen
  ThisComponent.Sheets(0).clearContents(255)
  
'Verarbeitung/Umsatz
  FOR i = min TO max
      Umsatz(i) = InputBox("Bitte geben Sie den Umsatz für Produkt " & i & " ein: ",ueb)
  NEXT i
  
'initialiesieren/Umsatzsumme
  USumme = 0
  
'Verarbeitung/Umsatzsumme
  FOR i = min TO max
      USumme = USumme + Umsatz(i)
  NEXT i
  
'Verarbeitung/prozentualer Anteil
  FOR i = min TO max
      PAnteil(i) = Umsatz(i) * 100/USumme
  NEXT i
  
'Maske
  ThisComponent.Sheets(0).getCellByPosition(0,0).String = "Umsatzübersicht" 
  ThisComponent.Sheets(0).getCellByPosition(0,1).String = "Produktnummer"
  ThisComponent.sheets(0).getCellByPosition(1,1).String = "Umsatz (Euro)"
  ThisComponent.sheets(0).getCellByPosition(2,1).String = "% - Anteil"
  
  FOR i = min TO max
      ThisComponent.Sheets(0).getCellByPosition(0,y - min + i).Value = i
      ThisComponent.Sheets(0).getCellByPosition(1,y - min + i).Value = Umsatz(i)
      ThisComponent.Sheets(0).getCellByPosition(1,y - min + i).NumberFormat = 4
      ThisComponent.Sheets(0).getCellByPosition(2,y - min + i).Value = PAnteil(i)
  NEXT i
  
  ThisComponent.sheets(0).getCellByPosition(0, y + max - min + 1).String = "Summe: "  
  ThisComponent.sheets(0).getCellByPosition(1, y + max - min + 1).Value = USumme
  ThisComponent.sheets(0).getCellByPosition(1, y + max - min + 1).NumberFormat = 4
    
End Sub
Sub Macro1
End Sub
			
			
							Ich bin nicht der versierteste Programmierer, daher habe ich eine Frage:
Warum bekomm ich hier immer nur den letzten Wert in die Tabelle eingetragen und nicht jeweils pro Zeile das berechnet, was ich gerne hatte? Also für jedes Zeile den entsprechenden Wert?
REM Umsatzübersicht
OPTION EXPLICIT
Sub Main
'Deklaration
  CONST min = 1 'Minimum, Anzahl der Produkte
  CONST max = 4 'Maximun, Anzahl der Produkte
  CONST ueb = "Umsatz mit Prozentanteilen" 'Überschrift
  
  DIM y AS integer 'Zeilenoffset
  DIM i AS integer 'Hilfsvariable, Zusammenhang mit Anzahl  der Produkten
  DIM Umsatz AS single 'Umsatz der Produkte
  DIM USumme AS single 'Umsatzsumme
  DIM PAnteil AS single 'prozentualer Anteil
 
'initialisieren/Zeilenoffset
  y = 2
  
'Tabelleninhalte löschen
  ThisComponent.Sheets(0).clearContents(255)
  
'Verarbeitung/Umsatz
  FOR i = min TO max
      Umsatz(i) = InputBox("Bitte geben Sie den Umsatz für Produkt " & i & " ein: ",ueb)
  NEXT i
  
'initialiesieren/Umsatzsumme
  USumme = 0
  
'Verarbeitung/Umsatzsumme
  FOR i = min TO max
      USumme = USumme + Umsatz(i)
  NEXT i
  
'Verarbeitung/prozentualer Anteil
  FOR i = min TO max
      PAnteil(i) = Umsatz(i) * 100/USumme
  NEXT i
  
'Maske
  ThisComponent.Sheets(0).getCellByPosition(0,0).String = "Umsatzübersicht" 
  ThisComponent.Sheets(0).getCellByPosition(0,1).String = "Produktnummer"
  ThisComponent.sheets(0).getCellByPosition(1,1).String = "Umsatz (Euro)"
  ThisComponent.sheets(0).getCellByPosition(2,1).String = "% - Anteil"
  
  FOR i = min TO max
      ThisComponent.Sheets(0).getCellByPosition(0,y - min + i).Value = i
      ThisComponent.Sheets(0).getCellByPosition(1,y - min + i).Value = Umsatz(i)
      ThisComponent.Sheets(0).getCellByPosition(1,y - min + i).NumberFormat = 4
      ThisComponent.Sheets(0).getCellByPosition(2,y - min + i).Value = PAnteil(i)
  NEXT i
  
  ThisComponent.sheets(0).getCellByPosition(0, y + max - min + 1).String = "Summe: "  
  ThisComponent.sheets(0).getCellByPosition(1, y + max - min + 1).Value = USumme
  ThisComponent.sheets(0).getCellByPosition(1, y + max - min + 1).NumberFormat = 4
    
End Sub
Sub Macro1
End Sub