Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Hilfe mit VBA
#11
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
Antworten Top
#12
Ja es funktioniert :)

ist zwar viel Schreibaufwand, funktioniert aber tadellos. Danke an euch.
Antworten Top
#13
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
Antworten Top
#14
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.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#15
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!
Antworten Top
#16
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
Antworten Top
#17
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
Antworten Top
#18
Hallo zusammen,

das With Activesheet sollte in diesem Fall auch entfallen können.
Gruß Atilla
Antworten Top
#19
(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
Antworten Top
#20
(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.
Gruß Atilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste