Microsoft Excel

Herbers Excel/VBA-Archiv

keine copy Übertragung

Betrifft: keine copy Übertragung
von: marc:-}
Geschrieben am: 13.04.2003 - 17:20:15

guten abend an alle,

bei einer abfrage der zelle sheets("Aus.Gr").range("G5") wird der inhalt der zelle ("H5")nach sheets("Ges.Geradeauslauf")uebertragen.
problem nr:.1 die zwei werte 010 und 020 lassen sich nicht uebertragen bei den anderen werten ist alles o.k.
problem nr:.2 gibt's eine andere moeglichkeit um die abfrage zu verkuerzen
ich bedanke mich im voraus
marc:-}

Sub ExportStep2()

Worksheets("Aus.Gr").Activate

If Range("G5").Value = "184" Then
Sheets("Ges.Geradeauslauf").Range("C3").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "191" Then
Sheets("Ges.Geradeauslauf").Range("C4").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "192" Then
Sheets("Ges.Geradeauslauf").Range("C5").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "270" Then
Sheets("Ges.Geradeauslauf").Range("C6").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "190" Then
Sheets("Ges.Geradeauslauf").Range("C9").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "193" Then
Sheets("Ges.Geradeauslauf").Range("C10").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "205" Then
Sheets("Ges.Geradeauslauf").Range("C8").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "213" Then
Sheets("Ges.Geradeauslauf").Range("C12").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "149" Then
Sheets("Ges.Geradeauslauf").Range("C13").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "180" Then
Sheets("Ges.Geradeauslauf").Range("C14").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "230" Then
Sheets("Ges.Geradeauslauf").Range("C15").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "196" Then
Sheets("Ges.Geradeauslauf").Range("C16").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "245" Then
Sheets("Ges.Geradeauslauf").Range("C17").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "197" Then
Sheets("Ges.Geradeauslauf").Range("C18").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "350" Then
Sheets("Ges.Geradeauslauf").Range("C19").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "020" Then
Sheets("Ges.Geradeauslauf").Range("C20").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "212" Then
Sheets("Ges.Geradeauslauf").Range("C21").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "347" Then
Sheets("Ges.Geradeauslauf").Range("C22").Value = Sheets("Aus.Gr").Range("H5").Value
End If
If Range("G5").Value = "010" Then
Sheets("Ges.Geradeauslauf").Range("C23").Copy Sheets("Aus.Gr").Range("H5")
End If

End Sub

  

Re: keine copy Übertragung
von: moe3008
Geschrieben am: 13.04.2003 - 17:35:30

Dein Problem 1.
es liegt daran das "020" aber in der zelle bestimmz die zahl 20 ist nimm am besten die hganzen anführungzeichen weg dann muss es auch gehen.
2 ja man kan es verkützen aber das macht nur sinn bevor du getippt hast jetzt ist es egal

  

Re: keine copy Übertragung
von: Ramses
Geschrieben am: 13.04.2003 - 17:36:33

Hallo,

Verkürzen wird nicht gross möglich sein, weil du immer neue Zellen adressierst.

020 und 010 lassen sich nicht übertragen, weil du in diesem Fall eine Format-Darstellung abfragst. EXCEL zeigt in Zahlenfeldern keine führende Null, ausser es wird ein Format hinterlegt die alle Zahlen dreistellig darstellt,... dann mit einer führenden Null.
In diesem Fall ist der Zellinhalt aber nicht 010 sondern 10 bzw. 20.

Korrigiere deine Abfrage dementsprechend, dann sollte es gehen.

Gruss Rainer

  

Re: marc sagt danke
von: marc :-}
Geschrieben am: 13.04.2003 - 17:50:26

hallo jungs danke fuer den formatierungshinweis.

marc:-}

  

Re: keine copy Übertragung
von: Knut
Geschrieben am: 13.04.2003 - 18:00:14

Du kannst den Code verkürzen, indem du With- Rahmen benutzt:

Option Explicit
Sub ExportStep2()
With Worksheets("Aus.Gr")
.Activate
With Sheets("Ges.Geradeauslauf")
If [g5] = "184" Then .[c3] = .[h5]
If [g5] = "191" Then .[c4] = .[h5]
If [g5] = "192" Then .[c4] = .[h5]
''...usw.
If [g5] = 10 Then .[c23].Copy .[h5]
End With
End With
End Sub



  

Re: keine copy Übertragung
von: ChrisL
Geschrieben am: 13.04.2003 - 20:29:28

Hallo Marc

In Ergänzung zu Knut's Beitrag habe ich noch einen weiteren Optimierungsvorschlag. Statt mich If...Then mit Select Case arbeiten. Etwa so...

With Worksheets("Aus.Gr")
.Activate
With Sheets("Ges.Geradeauslauf")

Select Case [G5]

Case 184
.[c3] = .[h5]

Case 191
.[c4] = .[h5]

Case 192
.[c4] = .[h5]
''...usw.

Case 10
.[c23].Copy .[h5]

End Select
End With
End With


Gruss
Chris

  

Re: danke Knut
von: marc :-}
Geschrieben am: 14.04.2003 - 12:39:26

hallo Knut ich bedanke mich fuer deine Hilfe.

marc :-}

  

Re: danke Chris
von: marc :- }
Geschrieben am: 14.04.2003 - 12:43:40

hallo Chris ich bedanke mich fuer dein vorschlag.

marc :-}

  

Re: danke Chris
von: marc : -}
Geschrieben am: 14.04.2003 - 12:46:43

hallo Chris ich bedanke mich fuer dein vorschlag.
marc :-}