Hilfe!

Hallo
Vielleicht könnt Ihr mir ja behilflich sein,

ich versuche ein Excel Programm zu schreiben, wo ich mit Makros/ Visual Basic arbeite,

es geht um folgendes, ich möchte ein Programm schreiben, dass folgendes macht:

– es soll den größten wert von einer Tabelle nehmen und alle Werte durch Sie teilen. Und dass bei allen verschiedenen Tabellen die aufgeführt sind!
Und diese Werte in einem Diagrammtyp darstellen. Wie soll dies funktionieren?

Könnt Ihr mir da bitte behilflich sein, und mir einige Tipps geben, ich mache zur Zeit ein Praktikum und habe noch nie mit diesem Programm so intensiv gearbeitet, daher würde es mich sehr freun wenn Du als Experte mir behilflich bist! :–)…

Ich bedanke mich schon im vornherein wünsche Ihnen noch einen angenehmen Tag

Mit freundlichen Grüßen Zeynep

kleine Anregung
Hallo Zeynep,
das sieht für mich ::auch Praktikant in der 4. Woche:: mit Excel VBA auch noch etwas umfangreicher aus. Ich bin somit auch kein wirklicher Experte (sehr fleißige Experten findest du auch in einem speziellen Excel Forum http://www.herber.de ). Aber da ist es auch besser wenn man schon etwas speziellere Fragen hat und darum hab ich auch hier nur mal ein paar Tips wie du teilweise rangehen könntest:

z.B. das Sortieren, nimm einfach mal eine Tabelle, starte den Makrorecorder und dann sortiere die Tabelle. Schwups hast du den vba code um eine Tabelle zu sortieren:

 Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, \_
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Natürlich ist das nur ein Anhalt da du das nun noch an deine speziellen Tabellen/Bedürfnisse anpassen musst. Auch kann man nicht viel durch den Makrorecorder herausfinden dafür ist die Hilfe aber wiederum recht nützlich!
Um die größte Zahl rauszufinden könnte man z.B. die Tabellenblattfunktion Max() nutzen.
Hier mal ein Beispiel zum einlesen der Werte und herausfinden des größten Wertes:

sub makro()
Dim zahlenDatenfeld() As Integer
i = 1
letzteZeile = 3
Do While letzteZeile \> i
ReDim Preserve zahlenDatenfeld(i)
zahlenDatenfeld(i) = Worksheets("Tabelle1").Cells(i, 1).Value

letzteZeile = letzteZeile + 1
If zahlenDatenfeld(i) = 0 Then
 letzteZeile = i
End If
i = i + 1
Loop

groessteZahl = Application.WorksheetFunction.Max(zahlenDatenfeld)
End Sub

Auch das funktioniert nun nur für ein Blatt wo in der ersten spalte beginnend in der ersten Zelle Zahlen stehen. Damit könntest du aber nun in angepasster Form weitermachen z.B. indem du die groessteZahl durch die Werte im zahlenDatenfeld teilst und die Ergebnisse in ein neues Datenfeld zwischenspeichers oder direkt in eine Tabelle ausgeben läßt.

Dim neuesDatenfeld()
ReDim neuesDatenfeld(i)
For i = i - 1 To 1 Step -1
If zahlenDatenfeld(i) 0 Then
neuesDatenfeld(i) = groessteZahl / zahlenDatenfeld(i)
End If
Next i

auch hier wieder nur ein grobes Beispiel.

Ich hoffe das hilft ein wenig :wink: Viel spaß beim knobeln!

mfG
Maze

ich versuche ein Excel Programm zu schreiben, wo ich mit
Makros/ Visual Basic arbeite,
es geht um folgendes, ich möchte ein Programm schreiben, dass
folgendes macht:
– es soll den größten wert von einer Tabelle nehmen und alle
Werte durch Sie teilen. Und dass bei allen verschiedenen
Tabellen die aufgeführt sind!
Und diese Werte in einem Diagrammtyp darstellen. Wie soll dies
funktionieren?

Hi,

ich hoffe, ich habe dich richtig verstanden.

Generell kannst du das easy über Do - Loop Schleifen machen.

Private Sub ErmittleWerte()
Dim MaxSheets() as long
Dim CurValue as long
Redim MaxSheets(worksheets.count)
for i=1 to ubound(MaxSheets)
j=1
do
CurValue=worksheets(i).cells(j,1)
if MaxSheets(i)