Collapse column

Autor Thema: Zeilen einfügen und Inhalt von bestimmten Spalten übernehmen  (Gelesen 1068 mal)

Offline hello123

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2013
Zeilen einfügen und Inhalt von bestimmten Spalten übernehmen
« am: März 01, 2018, 09:06:51 Vormittag »
Hallo Zusammen,

ich möchte in meiner Excel-Tabelle mit Hilfe eines Buttons unterhalb der Zelle, die gerade aktiv ist, eine neue Zeile einfügen. Die Formeln sollen übernommen werden, aber auch der Inhalt der Spalten B und C (inkl.Formatierung) soll kopiert werden. Mit dem Makro, das ich gefunden wird eine neue Zeile eingefügt und die Formeln übernommen, nicht aber der Inhalt von den Spalten B und C.

Das Makro lautet:
Sub Zeileeinfügen()
' Aktuelle Zeile kopieren, unterhalb Zeile einfügen und Inhalte in Zellen ohne Formel löschen
'
    Dim Zelle As Range
    ActiveCell.EntireRow.Copy
    Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
    For Each Zelle In Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 255).End(xlToLeft))
      If Not Zelle.HasFormula Then
        Zelle.ClearContents
      End If
    Next Zelle
    Cells(ActiveCell.Row + 1, 1).Select
End Sub


Das Makro läuft allerdings etwa eine halbe Minute (oder sogar länger) ... ist das normal?

Kann mir jemand diesbezüglich weiterhelfen?

Vielen Dank im Voraus!

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline hello123

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2013
Antw: Zeilen einfügen und Inhalt von bestimmten Spalten übernehmen
« Antwort #1 am: März 02, 2018, 07:01:59 Vormittag »
Keiner ne Idee?  :-\

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Zeilen einfügen und Inhalt von bestimmten Spalten übernehmen
« Antwort #2 am: März 02, 2018, 08:49:30 Vormittag »
Hallo,

grundsätzlich dauert das Schreiben von einzelnen Zellen in moderneren Excel-Versionen deutlich länger als in älteren Versionen.
Du könntest probieren, mal die Berechnung und Bildschirmaktualisierung während der Vorgänge auszuschalten.

Code: Visual Basic
  1. Sub Zeileeinfügen()
  2.  
  3.   Dim Zelle As Range
  4.    
  5.   ActiveCell.EntireRow.Copy
  6.   Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
  7.  
  8.   Application.Calculation = xlCalculationManual
  9.   Application.ScreenUpdating = False
  10.  
  11.   For Each Zelle In Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 255).End(xlToLeft))
  12.  
  13.     If Not Zelle.HasFormula Then
  14.      
  15.       Zelle.ClearContents
  16.      
  17.     End If
  18.  
  19.   Next Zelle
  20.  
  21.   Application.ScreenUpdating = True
  22.   Application.Calculation = xlCalculationAutomatic
  23.  
  24.   Cells(ActiveCell.Row + 1, 1).Select
  25.  
  26. End Sub

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline hello123

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2013
Antw: Zeilen einfügen und Inhalt von bestimmten Spalten übernehmen
« Antwort #3 am: März 02, 2018, 09:49:10 Vormittag »
Hallo,

vielen Dank! Es geht jetzt auf jeden Fall vieeel schneller! :) Besteht auch die Möglichkeit zusätzlich den Inhalt der Spalten B und C mittels Makro in die neu hinzugefügte Zeile übernehmen zu lassen?

Gruß

Offline hello123

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2013
Antw: Antw: Zeilen einfügen und Inhalt von bestimmten Spalten übernehmen
« Antwort #4 am: März 19, 2018, 07:20:41 Vormittag »
Hallo,

grundsätzlich dauert das Schreiben von einzelnen Zellen in moderneren Excel-Versionen deutlich länger als in älteren Versionen.
Du könntest probieren, mal die Berechnung und Bildschirmaktualisierung während der Vorgänge auszuschalten.

Code: Visual Basic
  1. Sub Zeileeinfügen()
  2.  
  3.   Dim Zelle As Range
  4.    
  5.   ActiveCell.EntireRow.Copy
  6.   Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
  7.  
  8.   Application.Calculation = xlCalculationManual
  9.   Application.ScreenUpdating = False
  10.  
  11.   For Each Zelle In Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 255).End(xlToLeft))
  12.  
  13.     If Not Zelle.HasFormula Then
  14.      
  15.       Zelle.ClearContents
  16.      
  17.     End If
  18.  
  19.   Next Zelle
  20.  
  21.   Application.ScreenUpdating = True
  22.   Application.Calculation = xlCalculationAutomatic
  23.  
  24.   Cells(ActiveCell.Row + 1, 1).Select
  25.  
  26. End Sub

Gruß

Hallo maninweb,

wie muss ich den Code ergänzen, damit der Inhalt der Spalten B und C der darüber liegenden Zeile in die neu eingefügte Zeile (inkl. Formatierung) kopiert wird?

Vielen Dank im Voraus für deine Unterstützung!

VG
« Letzte Änderung: März 19, 2018, 08:57:37 Vormittag von hello123 »

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Zeilen einfügen und Inhalt von bestimmten Spalten übernehmen
« Antwort #5 am: März 19, 2018, 09:08:42 Vormittag »
Hallo,

auf die schnelle ohne zu testen, versuche es mal damit...

Code: Visual Basic
  1. Sub Zeileeinfügen()
  2.  
  3.   Dim Zelle As Range
  4.    
  5.   ActiveCell.EntireRow.Copy
  6.   Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
  7.  
  8.   Application.Calculation = xlCalculationManual
  9.   Application.ScreenUpdating = False
  10.  
  11.   For Each Zelle In Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 255).End(xlToLeft))
  12.  
  13.     If Not Zelle.HasFormula Then
  14.      
  15.       Zelle.ClearContents
  16.      
  17.       Select Case Zelle.Offset(-1, 0).Column
  18.      
  19.         Case 2 To 3
  20.          
  21.           Zelle.Value = Zelle.Offset(-1, 0).Value
  22.          
  23.         Case Else
  24.        
  25.       End Select
  26.      
  27.     End If
  28.    
  29.   Next Zelle
  30.  
  31.   Application.ScreenUpdating = True
  32.   Application.Calculation = xlCalculationAutomatic
  33.  
  34.   Cells(ActiveCell.Row + 1, 1).Select
  35.  
  36. End Sub
  37.  

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline hello123

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2013
Antw: Antw: Zeilen einfügen und Inhalt von bestimmten Spalten übernehmen
« Antwort #6 am: März 19, 2018, 14:20:13 Nachmittag »
Hallo,

auf die schnelle ohne zu testen, versuche es mal damit...

Code: Visual Basic
  1. Sub Zeileeinfügen()
  2.  
  3.   Dim Zelle As Range
  4.    
  5.   ActiveCell.EntireRow.Copy
  6.   Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
  7.  
  8.   Application.Calculation = xlCalculationManual
  9.   Application.ScreenUpdating = False
  10.  
  11.   For Each Zelle In Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 255).End(xlToLeft))
  12.  
  13.     If Not Zelle.HasFormula Then
  14.      
  15.       Zelle.ClearContents
  16.      
  17.       Select Case Zelle.Offset(-1, 0).Column
  18.      
  19.         Case 2 To 3
  20.          
  21.           Zelle.Value = Zelle.Offset(-1, 0).Value
  22.          
  23.         Case Else
  24.        
  25.       End Select
  26.      
  27.     End If
  28.    
  29.   Next Zelle
  30.  
  31.   Application.ScreenUpdating = True
  32.   Application.Calculation = xlCalculationAutomatic
  33.  
  34.   Cells(ActiveCell.Row + 1, 1).Select
  35.  
  36. End Sub
  37.  

Gruß

Funktioniert - herzlichen Dank! :)

VG

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Zeilen einfügen und Inhalt von bestimmten Spalten übernehmen
« Antwort #7 am: März 19, 2018, 14:33:07 Nachmittag »
Hallo,

bitte schön :-)

Tipp: vermeide bitte das Zitieren des vorherigen Beitrags, wenn Du antwortest. Denn Du antwortest ja auf den
vorhergehenden Beitrag, d.h. Zitieren stört dann schon den Lesefluss.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.