Clever-Excel-Forum

Normale Version: Hilfe mit VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Ja ein kleiner Teil der Werte sind gegeben. Den Rest muss Excel alles selber berechnen. Meist handelt es sich um einfache Funktionen. Aber es sind auch einige Wenn Verknüpfungen, sehr viele Sverweise und ebenfalls 8 Boxplot Diagramme, die ich für die Analyse brauche, dabei. Hab ewig dafür gebraucht >.< 

Hab zwischenzeitlich auch überlegt gehabt das alles in Java zu schreiben, aber da langt mir zeitlich wohl nicht mehr
Naja im Nachhinein ist man immer Klüger ;)

ich Glaube ich weiß wie ich diesen Button mache.

-Ich mache pro Nutzungsprofil einen Button
-Wenn ich den Button anklicke läuft folgendes ab:

'24 Stundenprofil Wohnzimmer Werktag'

ActiveSheet.Range("C22").Value = 0
ActiveSheet.Range("C23").Value = 0
ActiveSheet.Range("C24").Value = 0
ActiveSheet.Range("C25").Value = 0
ActiveSheet.Range("C26").Value = 0
ActiveSheet.Range("C27").Value = 0
ActiveSheet.Range("C28").Value = 0
ActiveSheet.Range("C29").Value = 2
ActiveSheet.Range("C30").Value = 0
ActiveSheet.Range("C31").Value = 0
ActiveSheet.Range("C32").Value = 0
ActiveSheet.Range("C33").Value = 0
ActiveSheet.Range("C34").Value = 0
ActiveSheet.Range("C35").Value = 0
ActiveSheet.Range("C36").Value = 0
ActiveSheet.Range("C37").Value = 1
ActiveSheet.Range("C38").Value = 1
ActiveSheet.Range("C39").Value = 2
ActiveSheet.Range("C40").Value = 2
ActiveSheet.Range("C41").Value = 2
ActiveSheet.Range("C42").Value = 2
ActiveSheet.Range("C43").Value = 0
ActiveSheet.Range("C44").Value = 0
ActiveSheet.Range("C45").Value = 0

'....weitere 23 h Profile für jeden Raum'
End Sub

Damit sollte es funktionieren und ich kann die Tabellen immer noch manuell eingeben :)
Ich probiere das jetzt mal aus. Drückt mir die Daumen 

Gruß
Tobi
Ja es funktioniert :)

ist zwar viel Schreibaufwand, funktioniert aber tadellos. Danke an euch.
Hallo Tobi,

gegen den vielen Schreibaufwand :32:

Setz mal um Deinen Code eine "With" und "End With".

Dann kannst Du auf "ActiveSheet" in jeder Codezeile verzichten.

Also so:
Code:
With ActiveSheet

.Range("C22").Value = 0
.Range("C23").Value = 0
.Range("C24").Value = 0
.Range("C25").Value = 0
.Range("C26").Value = 0
.Range("C27").Value = 0
.Range("C28").Value = 0
.Range("C29").Value = 2
.Range("C30").Value = 0
.Range("C31").Value = 0
.Range("C32").Value = 0
.Range("C33").Value = 0
.Range("C34").Value = 0
.Range("C35").Value = 0
.Range("C36").Value = 0
.Range("C37").Value = 1
.Range("C38").Value = 1
.Range("C39").Value = 2
.Range("C40").Value = 2
.Range("C41").Value = 2
.Range("C42").Value = 2
.Range("C43").Value = 0
.Range("C44").Value = 0
.Range("C45").Value = 0

End With

Das spart schon mal ungemein.

Gruß
Max
Hallo Tobi,

1. für die Eingabe von Daten würde ich auf keinen Fall die Tabelle mit den Ausgaben wählen, sondern dem Anwender eine Tabelle zur Verfügung stellen, in der er sich austoben kann, dann gibt es auch kein Problem mit dem Überschreiben von Formeln.
2. da der SVERWEIS sich offensichtlich auf verschiedene Tabellen beziehen soll, ist meine Formel so nicht brauchbar.
3. da ich Deine Tabellen nicht kenne, kann ich nicht sagen, was man da noch ressourcensparend verändern könnte.


Vieles geht ohne VBA und noch dazu schneller.
Hi,

(24.02.2015, 14:19)Max schrieb: [ -> ]gegen den vielen Schreibaufwand :32:

Setz mal um Deinen Code eine "With" und "End With".

und dann noch eine For-Schleife:

Code:
Dim i as Integer

With Active.Sheet
   For i = 22 to 45
      .Range("C" & i).Value = 0
   Next
End With

Das spart noch mehr!
Hi Ralf,

das wäre dann mein Vorschlag:

Code:
 With ActiveSheet
   .Range("C22:C45").Value = 0
   .Range("C37:C38").Value = 1
   .Range("C29,C39:C42").Value = 2
 End With

Gruß Uwe
Hi Uwe,

(24.02.2015, 23:15)Kuwer schrieb: [ -> ]das wäre dann mein Vorschlag:

stimmt.
Für mich waren da lauter 0 drin. Blush
Hallo zusammen,

das With Activesheet sollte in diesem Fall auch entfallen können.
(25.02.2015, 02:24)atilla schrieb: [ -> ]Hallo zusammen,

das With Activesheet sollte in diesem Fall auch entfallen können.

Tatsächlich. Ich bin tief beeindruckt.

Gruß Uwe
(25.02.2015, 05:48)Kuwer schrieb: [ -> ]
(25.02.2015, 02:24)atilla schrieb: [ -> ]Hallo zusammen,

das With Activesheet sollte in diesem Fall auch entfallen können.

Tatsächlich. Ich bin tief beeindruckt.

Gruß Uwe

Hallo Uwe,

warum denn, einem Profi mir fällt so etwas sofort ins Auge.

Wenn Max schreibt:


Zitat:Setz mal um Deinen Code eine "With" und "End With".


Dann kannst Du auf "ActiveSheet" in jeder Codezeile verzichten.

da kann ich doch erwähnen, dass man in diesem Fall auf die Referenzierung zum Activesheet ganz verzichten kann.
Du musst nicht so Dünnhäutig sein und alles auf Dich beziehen.

In Zukunft kannst Du davon ausgehen, dass meine Antworten in Treads in denen Du geantwortet hast, sich nie auf Dich beziehen.
Seiten: 1 2 3