Herbers Excel-Forum - das Archiv

größer 0 ja sonst nein

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: größer 0 ja sonst nein
von: holg

Geschrieben am: 04.03.2005 18:21:27
hi,
Ich habe schon viel von diesem Forum gehört und mich auch ein wenig in der Recherche umgesehen aber für mich keine Lösung gefunden.
Ich habe nämlich folgendes Problem,
ich kopiere Zeile A nach Zeile B und möchte bei dem kopiervorgang beschriebene Zellen in Zeile B nur dann überschreiben wenn der Wert aus Zeile A größer 0 ist, das heißt wird eine leere Zelle aus Zeile A in eine beschriebene Zelle in Zeile B kopiert darf diese nicht gelöscht werden sondern es sollte der Inhalt bestehen bleiben.
Ich habe mit dem Recorder versucht: kopiere Zeile A nach Zeile B und füge Inhalte ein, aber dann werden wie gesagt meine bestehenden Inhalte in Zeile B durch leere aus Zeile A ersetzt.
Frage gibt es eine Formel die ich in Zeile B schreiben kann
die automatisch erkennt, wenn Wert größer 0 dann zulassen sonst nicht dann meinen Wert erhalten.
Vieleicht hattet ihr hier mal ein ähnliches Problem und eine Lösung?
Grüsse von der Ostsee
holg
Bild

Betrifft: AW: größer 0 ja sonst nein
von: Josef Ehrensberger

Geschrieben am: 04.03.2005 18:42:54
Hallo Holg!
Vielleicht so!
Sub KopierenBedingt()
Dim arrZ1 As Variant, arrZ2 As Variant
Dim n As Integer
arrZ1 = Rows(4)   'Zeile die Kopiert wird
arrZ2 = Rows(10)  'Zeile in die eingefügt wird
For n = 1 To UBound(arrZ1, 2)
If arrZ2(1, n) = 0 Then
arrZ2(1, n) = arrZ1(1, n)
End If
Next
Rows(10) = arrZ2
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Bild

Betrifft: AW: größer 0 ja sonst nein
von: holg

Geschrieben am: 04.03.2005 19:05:55
hi,
das war ja eine schnelle Antwort,
da ich sonst nur mit dem recorder arbeite habe ich diesen Befehl in mein Macro eingefügt und gestartet, aber es tat sich nicht`s.
Auch habe ich den Makro in die Tabelle eingetragen aber da weiß ich nicht wie man ihn startet.
natürlich meinte ich vorhin zeile 1 und Zeile 2 wie ich auf A und B kam keine Ahnung.
Vieleicht hast du ja noch mal einen Zip für mich, ich probiere derweil noch ein wenig rum
aber schönen Dank schon mal
holg
Bild

Betrifft: AW: größer 0 ja sonst nein
von: Josef Ehrensberger

Geschrieben am: 04.03.2005 19:08:29
Hallo Holg!
Der Code gehört in ein allgmeines Modul, also dort wo auch
die aufgezeichneten Makros landen!
Der Code von vorhin, arbeitet in die falsche Richtung;-))
so sollte es klappen.
Sub KopierenBedingt()
Dim arrZ1 As Variant, arrZ2 As Variant
Dim n As Integer
arrZ1 = Rows(1)   'Zeile die Kopiert wird
arrZ2 = Rows(2)  'Zeile in die eingefügt wird
For n = 1 To UBound(arrZ1, 2)
If arrZ1(1, n) <> 0 Then
arrZ2(1, n) = arrZ1(1, n)
End If
Next
Rows(2) = arrZ2
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Bild

Betrifft: AW: größer 0 ja sonst nein
von: holg
Geschrieben am: 04.03.2005 19:23:43
Hi
also das war kompetent
genauso habe ich mir das vorgestellt.
herzlichsten Dank
holg
Bild

Betrifft: auch über Button?
von: holg

Geschrieben am: 04.03.2005 19:54:01
Hi,
ich muß noch einmal kurz nach haken, ich habe den Behehl gerade auf ein Button gelegt, aber da scheint was zu hakeln. Ich glaube diese beiden Befehle
Private Sub CommandButton1_Click()
Sub KopierenBedingt()
vertragen sich nicht,
nun weiß ich nicht wie ich das mit einander vereinbaren kann, da ich den Befehl mit auf ein Button legen möchte der schon mehrere Aktionen ausführt.
holg
Bild

Betrifft: AW: auch über Button?
von: Josef Ehrensberger

Geschrieben am: 04.03.2005 19:59:02
Hallo Holg!
Das ist ja auch ein "Sub" zuviel;-))
Private Sub CommandButton1_Cklick()
Dim arrZ1 As Variant, arrZ2 As Variant
Dim n As Integer
arrZ1 = Rows(1)   'Zeile die Kopiert wird
arrZ2 = Rows(2)  'Zeile in die eingefügt wird
For n = 1 To UBound(arrZ1, 2)
If arrZ1(1, n) <> 0 Then
arrZ2(1, n) = arrZ1(1, n)
End If
Next
Rows(2) = arrZ2
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Bild

Betrifft: AW: schon erledigt! Danke o.T
von: holg
Geschrieben am: 04.03.2005 20:07:28
Bild

Betrifft: AW: einen noch "weil`s so gut war"
von: holg

Geschrieben am: 04.03.2005 21:25:11
hi noch mal, nerv,
ich wollte den code so w.u.a. abändern das statt zeile 2, die Inhalte in Zeile 2:3 kopiert werden, es ist mißglückt da immer noch nur in Zeile2 kopiert wird
ändere ich den Code dahingehend ab das statt Z2 Z("2:3") steht erscheint ein Prozedur Fehler
vieleicht könnte mir jemand noch einen Rat geben.

Private Sub CommandButton1_Click()
Dim arrZ1 As Variant, arrZ2 As Variant
Dim n As Integer
arrZ1 = Rows(1)   'Zeile die Kopiert wird
arrZ2 = Rows("2:3")  'Zeile in die eingefügt wird'
For n = 1 To UBound(arrZ1, 2)
If arrZ1(1, n) <> 0 Then
arrZ2(1, n) = arrZ1(1, n)
End If
Next
Rows("2:3") = arrZ2
End Sub

Bild

Betrifft: AW: einen noch "weil`s so gut war"
von: Josef Ehrensberger
Geschrieben am: 04.03.2005 21:57:50
Hallo Holg!
Wie soll den der Inhalt einer Zeile in zwei Zeilen eingefügt werden ?

Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild

Betrifft: AW:
von: holg

Geschrieben am: 04.03.2005 22:10:28
hi,
was manche leute so brauchen oder,
eigentlich nichts kompliziertes wenn ich das manuell mache makiere ich zwei zeilen und er fügt die eine Zeile in 2 ein.
per makro würde es so aussehen
Rows("22:22").Select
Selection.Copy
Rows("23:24").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub
gruß holg
Bild

Betrifft: AW:
von: Josef Ehrensberger

Geschrieben am: 04.03.2005 22:29:57
Hallo Holg!
Dann z.B. so!


      
Dim arrZ1 As Variant, arrZ2 As Variant
Dim n As Integer
arrZ1 = Rows(1)   
'Zeile die Kopiert wird
arrZ2 = Rows(2)  'Zeile in die eingefügt wird

   
For n = 1 To UBound(arrZ1, 2)
      
If arrZ1(1, n) <> 0 Then
         arrZ2(1, n) = arrZ1(1, n)
      
End If
   
Next
Rows(2) = arrZ2
Rows(3) = arrZ2 

     Code eingefügt mit Syntaxhighlighter 3.0


Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild

Betrifft: AW: bedankt
von: holg
Geschrieben am: 04.03.2005 22:37:46
Hi,
hätte ich also nur noch mal diese Zeile in den Code einfügen brauchen und wenn es noch mehr zeilen sein würden den Rows(4) und(5) usw erweitern?
Rows(3) = arrZ2
holg
Bild

Betrifft: Ja! o.T.
von: Josef Ehrensberger

Geschrieben am: 04.03.2005 22:39:09
Gruß Sepp
 Bild