Microsoft Excel

Herbers Excel/VBA-Archiv

Arbeitsblätter | Herbers Excel-Forum


Betrifft: Arbeitsblätter von: Jochen
Geschrieben am: 17.10.2008 17:49:55

Hallo brauche Hilfe
Ich habe ein Arbeitsblatt mit dem Namen Kanal dort können 22 Makros gestartet werden.
Jedes der Makros fügt in die Zeile 9 auf dem Arbeitsblatt Kanal eine neue Zeile ein.
Dann startet eine Abfrage nach Zahlenwerten und zum Ende wird eine Summe errechnet.
Nun möchte ich das wenn eines der Makros gestartet wird auch auf dem Arbeitsblatt ISO
eine neue Zeile in Reihe 9 eingefügt wird und die Werte aus dem Arbeitsblatt Kanal
übernommen werden.
Zudem soll auf dem Arbeitsblatt ISO zu den Zellen D9 und E9 ein Wert hinzugerechnet werden den es nur auf diesem Arbeitsblatt in Zelle B12 gibt.
Wäre toll wenn mir jemand helfen könnte.
Gruß Jochen

  

Betrifft: AW: Arbeitsblätter von: Matthias L
Geschrieben am: 17.10.2008 18:41:22

Hallo Jochen

meinst Du so ?

Option Explicit
Sub Jochen()
Sheets("ISO").Rows("9:9").Value = Sheets("Kanal").Rows("9:9").Value
With Sheets("ISO")
 .Cells(9, 4) = CLng(.Cells(9, 4) + .Cells(12, 2))
 .Cells(9, 5) = CLng(.Cells(9, 5) + .Cells(12, 2))
End With
End Sub






Gruß Matthias


  

Betrifft: AW: Arbeitsblätter von: stormy_weathers
Geschrieben am: 17.10.2008 18:46:16

mit verlaub...
sorry, dass ich mich einmische... aber:
ohne
Worksheets("ISO").Rows("9:9").Select
Selection.Insert Shift:=xlDown
wird es ihm keine neue reihe einfügen in seinem blatt iso.

(mach das nur, weil ich auch grad an einer lösung gearbeitet habe)

gruß
stormy


  

Betrifft: kein Problem :o) von: Matthias L
Geschrieben am: 17.10.2008 19:07:45

Hallo

Na das ist ja logisch, aber wenn er folgendes schreibt:

Jedes der Makros fügt in die Zeile 9 auf dem Arbeitsblatt Kanal eine neue Zeile ein.

dann hat er ja den Code schon !

Da braucht er das gleiche ja nur für das Worksheet("ISO") tun. Oder?

... und dann den Rest hinten dranhängen. So hätte ich es erwartet ;o)

Gruß Matthias


  

Betrifft: AW: kein Problem :o) von: stormy_weathers
Geschrieben am: 17.10.2008 19:10:33

ok, unentschieden... lol

Ne hast natürlich recht!

gruß
stormy


  

Betrifft: AW: Arbeitsblätter von: Jochen
Geschrieben am: 17.10.2008 19:09:26

Danke für die Antworten
Da ich keine besonderen Kenntnisse in VBA habe sind zwei unterschiedliche Antworten für mich nicht
so gut. Wie soll ich das Makro den jezt schreiben.
Grüß Jochen


  

Betrifft: AW: Arbeitsblätter von: stormy_weathers
Geschrieben am: 17.10.2008 19:13:12

Na, ein bisschen sollte man schon eigeninitiative zeigen und zumindest mal versuchen...
meine Zeilen vor die Zeilen von Matthias, damit die Zeile 9 in deinem Blatt nicht überschrieben wird, sondern eine neue eingefügt wird...
Das sind nicht unterschiedliche Codes... du must diese zusammen kombinieren...

gruß
stormy


  

Betrifft: AW: Arbeitsblätter von: Jochen
Geschrieben am: 17.10.2008 19:29:27

Hallo
Möchte auch nicht das ihr für mich die Arbeit erledigt.
Das versuchen macht ja auch Spaß. Muß nur jedesmal wenn ich weiter Arbeiten möchte die
Festplatte tauschen. Hab meine Programme auf einer Festplatte ohne Internet Zugang.

Gruß Jochen


  

Betrifft: AW: Arbeitsblätter von: Matthias L
Geschrieben am: 17.10.2008 19:47:25

Hallo Jochen

Na Du brauchst doch nur am Ende von deinem Makro diese beiden Codes einfügen:

erst Dein Makro, wo Du die Zeile einfügst in Blatt "Kanal"
dann den Code von stormy
und dann eben


Sheets("ISO").Rows("9:9").Value = Sheets("Kanal").Rows("9:9").Value
With Sheets("ISO")
.Cells(9, 4) = CLng(.Cells(9, 4) + .Cells(12, 2))
.Cells(9, 5) = CLng(.Cells(9, 5) + .Cells(12, 2))
End With


allerdings solltest Du dann in Blatt "ISO" einen Namen vergeben für (B2) also für Cells(2, 2)
da beim Einfügen von einer Zeile dann dieser Bareich auch nach unten rutscht.
da muß man dann mit Range("DeinName") statt Cells(2, 2) arbeiten. Da dieser Name dann mitwandert

B2 statt B12 ist schon berücksichtigt (Du hast es sicher bemerkt)

Man kann Festplatten jumpern als Master und Slave. Da braucht man dann auch nicht immer umbauen ;o)
sonder kann auf beide zugreifen.

Gruß Matthias


  

Betrifft: Korrektur - kein Name notwendig von: Matthias L
Geschrieben am: 17.10.2008 20:15:51

Hallo

nur B12 hätte sich nur verschoben B2 natürlich nicht . Also brauchst Du auch keinen Namen vergeben.

Ich hatte den Text schon fertig und dann nur B12 durch B2 ausgetauscht.
Hatte nur vergessen das mit dem Namen wieder zu löschen, was allerdings bei B12 notwendig gewesen.wäre.

Gruß Matthias


  

Betrifft: AW: Arbeitsblätter von: Erich G.
Geschrieben am: 17.10.2008 19:29:04

Hallo Jochen,
eins verstehe ich so nicht:

Nehmen wir an, in ISO!B12 steht die Zahl 1000.
Wenn in ISO eine neue Zeile 9 eingefügt wird, dann steht die 1000 danach doch in B13, oder?

Ich hielte es für sinnvoll, wenn du mal ein oder zwei deiner 22 Makros hier postest.
Dann ließe sich leichter sagen, was du wo einbauen könntest.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Arbeitsblätter von: Jochen
Geschrieben am: 17.10.2008 19:37:47

Hallo
Du hast recht das war ein Tipfehler vom mir. Keine Absicht!!!!
Der Wert seht nicht in Zelle B12 sondern in B2.
Gruß


  

Betrifft: AW: Arbeitsblätter von: Erich G.
Geschrieben am: 17.10.2008 19:59:27

Hi Jochen,
da du meinem Vorschlag, 2 bisherige Makros zu posten, nicht folgst,
habe ich das mal an zwei Beispielmakros nachgebaut.
Das kannst du auch in einer neuen Mappe (mit den beiden Blättern) ausprobieren:

Option Explicit

Sub Makro1()
   With Sheets("Kanal")
      .Rows("9:9").Insert Shift:=xlDown
      .Cells(9, 1) = "Makro1"
      .Cells(9, 2) = Now
      .Cells(9, 2) = Now
      .Cells(9, 4) = Rnd
      .Cells(9, 5) = Rnd
   End With                   ' bis hier bisheriges Makro
   ISO_bearb                  ' Aufruf ISO_bearb
End Sub

Sub Makro22()
   With Sheets("Kanal")
      .Rows("9:9").Insert Shift:=xlDown
      .Cells(9, 1) = "Makro22"
      .Cells(9, 2) = Now
      .Cells(9, 4) = 22 + Rnd
      .Cells(9, 5) = 22 + Rnd
   End With                   ' bis hier bisheriges Makro
   ISO_bearb                  ' Aufruf ISO_bearb
End Sub

Sub ISO_bearb()
   With Sheets("ISO")
      .Rows("9:9").Insert Shift:=xlDown               ' neue Zeile 9
      .Rows("9:9").Value = Sheets("Kanal").Rows("9:9").Value
      .Cells(9, 4) = .Cells(9, 4) + .Cells(2, 2)      ' addiere B2
      .Cells(9, 5) = .Cells(9, 5) + .Cells(2, 2)      ' addiere B2
   End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort