VBA für Dateneingabe
#11
Hallöchen,

ja, wie gesagt, nochmal hüpfen - 2x End(xlup):

Code:
'Wenn letzte Zeile des Tabellenbereiches nicht leer ist, dann
If Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).Value <> "" Then
  'unter dem Bereich einfuegen
  Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
ansonsten
Else
  'nochmal nach oben und dann unter den Daten einfuegen
  Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
'Ende Wenn letzte Zeile des Tabellenbereiches nicht leer ist, dann
End If
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Scolex2015
Top
#12
Atilla damit wären wir bei 75%.
Jetzt er schreibt in die Tabelle auf der dem zweiten Tabellenblatt aber leider erweitert er diese nicht, sondern überschreibt immer den alten Datensatz...  Undecided

Schauan, an welcher Stelle müßte ich deinen Part einfügen?
Top
#13
Hallo,

auf welchem Code beziehst Du dich jetzt?
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Scolex2015
Top
#14
Hallo Scolex,

im Code steht diese Zeile:

Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues

Die ersetzt Du durch die Zeilen von mir.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#15
Ich versuche gerade eine Symbiose zwischen Steffl (der es hinbekommen hat das meine Formeln aus der Dateneingabe nicht gelöscht werden) und Schauan (der ist hinbekommen hat das die Eingaben untereinander in meinem zweiten Tabellenblatt landen)


Leider sieht das jetzt so wüst aus, dass weder Exel noch ich etwas damit anfangen können!  :16:

Code:
Sub Zeile_kopieren()
  Dim lngC As Long
  'Zappel nicht!
  Application.ScreenUpdating = False
 
  With Worksheets("Datenmaske")
     lngC = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
     
     'Bereich kopieren
     Sheets("Eingabemaske").Range("A7:G7").Copy
     
     'einfügen in erste freie Zeile in ausgabe
     .Cells(lngC, 1).PasteSpecial xlPasteValues
  End With
  Worksheets("Eingabemaske").Range("A7,C7,E7:F7").ClearContents
 
  'Zappel wieder!
  Application.ScreenUpdating = True
 
  'Kopiermodus beenden
  Application.CutCopyMode = False
End Sub


Das ist jetzt der Ausagangscode von Steffl, Schauan leider existiert die Zeile welche ich durch deine Schleife ersetzen möchte nicht mehr.... Hiiiilfe  :20:
Top
#16
Hallöchen,

aber in Deiner ersten Fragestellung ist er noch Wink Ich habe meinen Part jetzt mal linksseitig eingefügt, damit das besser ersichtlich ist.

Code:
Sub Dateneingabe()
 
  'Bildschirm höre auf zu zappeln!
  Application.ScreenUpdating = False
 
  'Bereich von bis wird kopiert
  Sheets("Eingabemaske").Range("A7:G7").Copy
 
  'Einfügen in erste freie Zeile in Datenmaske
'Wenn letzte Zeile des Tabellenbereiches nicht leer ist, dann
If Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).Value <> "" Then
 'unter dem Bereich einfuegen
 Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
ansonsten
Else
 'nochmal nach oben und dann unter den Daten einfuegen
 Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
'Ende Wenn letzte Zeile des Tabellenbereiches nicht leer ist, dann
End If
  'Leider trägt er mir das nicht in meine Tabelle ein, er fängt bei A3 unter der Tabelle an, da dieser Baustein geklaut ist und mich überfordert bin ich hier total hilflos!
 
  'Bereich von bis wird geleert
  Range("A7:G7").ClearContents
  Macht er super aber leider sind meine tollen Formeln und Bezüge weg, ein eintragen der Formel über VBA Code führt zu Fehlern.
 
  'Bildschirm darf wieder zappeln
  Application.ScreenUpdating = True
 
  'Kopiermodus beenden
  Application.CutCopyMode = False
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Scolex2015
Top
#17
Hallo,

(23.12.2015, 16:17)Scolex2015 schrieb: Ich versuche gerade eine Symbiose zwischen Steffl (der es hinbekommen hat das meine Formeln aus der Dateneingabe nicht gelöscht werden) und Schauan (der ist hinbekommen hat das die Eingaben untereinander in meinem zweiten Tabellenblatt landen)

die Ergänzung von Atilla hast Du schon gesehen?
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Scolex2015
Top
#18
Gesehen habe ich die Verbesserung von Atilla schon aber der Sinn erschließt sich mir nicht. Top Codeparts sind für mich Aktuell Steffl, für den erhalt der Formeln und Schauan für die Eingabe in die Tabelle. Aber beide zusammen funzeln irgendwie dahin gehend nicht das er meine Formeln löscht, das ist der aktuelle Code mit dem ich arbeite....
Code:
Sub Dateneingabe()
 
 'Bildschirm höre auf zu zappeln!
 Application.ScreenUpdating = False
 
 'Bereich von bis wird kopiert
 Sheets("Eingabemaske").Range("A7:G7").Copy
 
'Wenn letzte Zeile des Tabellenbereiches nicht leer ist, dann
If Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).Value <> "" Then
'unter dem Bereich einfuegen
Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
'ansonsten
Else
'nochmal nach oben und dann unter den Daten einfuegen
Sheets("Datenmaske").Cells(Rows.Count, 1).End(xlUp).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
'Ende Wenn letzte Zeile des Tabellenbereiches nicht leer ist, dann
End If
 
 'Bereich von bis wird geleert
 Range("A7:G7").ClearContents
 
 
 'Bildschirm darf wieder zappeln
 Application.ScreenUpdating = True
 
 'Kopiermodus beenden
 Application.CutCopyMode = False
End Sub
 

 Vieleicht kann Steffl da nochmal rüberschauen und nachjustieren!?
Top
#19
Hallo,

Atilla hat einen Code hier eingestellt, füge ich ihn nochmals ein

Code:
Sub Zeile_kopieren()
  Dim lngC As Long
  'Zappel nicht!
  Application.ScreenUpdating = False

  With Worksheets("Datenmaske")
     lngC = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
     If lngC = 3 Then
       If Application.CountA(Range("A2:G2")) = 0 Then lngC = 2
     End If
      
     'Bereich kopieren
     Sheets("Eingabemaske").Range("A7:G7").Copy
    
     'einfügen in erste freie Zeile in ausgabe
     .Cells(lngC, 1).PasteSpecial xlPasteValues
  End With
  Worksheets("Eingabemaske").Range("A7,C7,E7:F7").ClearContents

  'Zappel wieder!
  Application.ScreenUpdating = True

  'Kopiermodus beenden
  Application.CutCopyMode = False
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Scolex2015
Top
#20
Hi,

(23.12.2015, 19:24)Scolex2015 schrieb: Gesehen habe ich die Verbesserung von Atilla schon aber der Sinn erschließt sich mir nicht. Top Codeparts sind für mich Aktuell Steffl, für den erhalt der Formeln und Schauan für die Eingabe in die Tabelle. Aber beide zusammen funzeln irgendwie dahin gehend nicht das er meine Formeln löscht, das ist der aktuelle Code mit dem ich arbeite....
[...]
 Vieleicht kann Steffl da nochmal rüberschauen und nachjustieren!?

jetzt schreibe ich es doch:

wenn atilla sich Steffls Code vornimmt und eine Verbesserung einbaut, dann solltest Du nicht mit Steffls unverändertem Code weiterarbeiten, sondern atillas Code verwenden. Wenn Du den Code nicht verstehst, solltest Du bei ihm nachfragen.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • Steffl
Top


Gehe zu:


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