Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

wert aus bestimmten bereich kopieren und einfügen


Betrifft: wert aus bestimmten bereich kopieren und einfügen von: Kay
Geschrieben am: 02.10.2017 18:00:48

Hallo zusammen,

ich habe folgendes Problem:

Ich habe eine Excelliste in der ich Daten stehen habe. Jede 2. Zeile ist allerdings leer. Diese möchte ich jetzt füllen. Hierbei ist es so, das der gleiche Wert immer in einem bestimmten Zeilenbereich steht.

Ich hätte jetzt gerne, das ich über eine UserForm einen Wert eingeben kann. Dieser Wert soll dann in einem bestimmten Zeilenbereich (z.b. Zeile 102 - 110) in jede leer zelle eingefügt werden. Die entsprechenden Zeilennummern möchte ich ebenfalls über eine userform auswählen können.

Ich hoffe die Aufgabenstellung habe ich einigermaßen Verständlich erklären können und ihr könnt mir hier weiter helfen.

Vielen Dank schon mal im Voraus

  

Betrifft: AW: wert aus bestimmten bereich kopieren und einfügen von: Kay
Geschrieben am: 02.10.2017 18:15:39

Zum besseren Verständnis habe ich mal ein Mustertabelle erstellt.
Ich möchte in jeder Freien Zelle in Spalte A und B, den Wert aus Zeile 2 eintragen und das nur in einem bestimmten Bereich. Hier im Beispiel wäre es in Zeilen 1 bis 16, da danach der Artikel "Löffel" kommt, der wiederum einen anderen Text bekommt.
https://www.herber.de/bbs/user/116702.xlsx


  

Betrifft: AW: wert aus bestimmten bereich kopieren und einfügen von: fkw48
Geschrieben am: 03.10.2017 10:06:50

https://www.herber.de/bbs/user/116711.xlsm

Quick&Dirty-Muster

LG


  

Betrifft: AW: wert aus bestimmten bereich kopieren und einfügen von: Kay
Geschrieben am: 03.10.2017 20:29:15

Hallo fkw48,

vielen Dank für die schnelle Lösung. Das ist genau das, was ich gesucht habe.
Wenn ich jetzt noch in die UserForm den Zeilenbereich eingeben könnte, wäre es perfekt.

Also z.B. werte in die zeilen 125-135 schreiben. beim nächsten mal z.B. 136-146 usw. das würde mir jetzt noch sehr helfen.

vielen Dank


  

Betrifft: AW: wert aus bestimmten bereich kopieren und einfügen von: fkw48
Geschrieben am: 05.10.2017 11:17:51

https://www.herber.de/bbs/user/116760.xlsm
Moin,
nochmals und leise weinend zum Mitschreiben
- sitzt die aktuelle Zelle auf dem Begriff in Spalte A, dann nimmt das Makro Fahrt auf
- eine Sicherung gegen unerlaubte Verwendung einer "Zwischenzelle" ist mir zu langweilig
- wenn, dann - wird der Begriff in der Userform kundgetan und das Frame zur Eingabe gezeigt

Des Menschen Wille ist sein Himmelreich, im Anhang kann zusätzlich der zu ersetzende
Zeilenabstand (von / bis Zeile) nachjustiert werden.

PS: ich schäme mich für den Code Zumzum, habe aber bewusst langweilig getextet, damit
er leichter nachzulesen


  

Betrifft: AW: wert aus bestimmten bereich kopieren und einfügen von: Kay
Geschrieben am: 06.10.2017 18:20:49

Hallo fkw48,

vielen Dank. Das geht schon in die richtige Richtung bzw. ist eigentlich genau das was ich benötige.
Allerdings, wenn ich jetzt nicht in Zeile 1 sondern z.B. in Zeile 15 - 21 etwas schreiben möchte, macht das Macro nicht das was es soll. Es wird nur eine leere Zeile gefüllt. Er soll aber wirklich den Bereich nehmen, den ich auswähle, unabhängig davon, ob die zuvor stehenden Zeilen gefüllt sind oder nicht.
Desweiteren würde mich noch interessieren, was ich ändern muss, wenn ich z.B. nicht die Spalte A und B sondern D und E füllen möchte.
Auch wenn es für dich wahrscheinlich kein Problem darstellt, für mich ist es noch nicht so leicht zu verstehen :-) deshalb bin ich dir für deine Hilfe sehr dankbar!!!

Wäre super, wenn du es dir nochmal anschauen könntest und mir die Fragen bzw. das Macro nochmal zur Verfügung stellen würdest.

Viele Grüße


  

Betrifft: AW: wert aus bestimmten bereich kopieren und einfügen von: fkw48
Geschrieben am: 07.10.2017 19:12:09

einfach aus dem Code zu CommandButton1_Click() die If - Bedingung weg
(damit wird der Löschen-Button Makulatur)

If .Value = "" Then .Value = UserForm1.TextBox1.Text
If .Offset(, 1).Value = "" Then .Offset(, 1).Value = UserForm1.TextBox2.Text


mit dem .offset(,[Spaltennummer]) steuerst du die Ausgabe rechts von

.Offset(, 2).Value = UserForm1.TextBox1.Text
.Offset(, 3).Value = UserForm1.TextBox2.Text


  

Betrifft: AW: wert aus bestimmten bereich kopieren und einfügen von: Kay
Geschrieben am: 07.10.2017 20:11:02

Hallo fkw48,

also das mit den Spalten habe ich verstanden und es funktioniert auch schon mal, wie ich es gerne hätte.

Leider bekomme ich es nicht mit hin, das wirklich die Zeilen beschrieben werden, die ich in den Comboboxen auswähle. Ich verstehe leider auch nicht, welchen If Befehl ich raus lassen soll. Hab jetzt alles mal versucht, aber ich bekomme immer eine Fehlermeldung.

Ich habe den Code jetzt mal so angepasst, rein zum testen, allerdings wird immer nur ein Zeile beschrieben und nicht alle leeren Zeilen im z.B. Bereich 15-25.
Könntest du mir vielleicht nochmal hierbei verständlicher helfen?

Option Explicit

Dim rngA As Range

Private Sub CommandButton1_Click()
Dim rngC As Range, fA As String
Application.ScreenUpdating = False
   With Columns("D")
      Set rngC = .Find(rngA.Value, LookIn:=xlValues)
      If Not rngC Is Nothing Then
        fA = rngC.Address
         Do
            With rngC.Offset(1)
             If rngC.Row >= UserForm1.ComboBox1.Value Then
              If rngC.Row <= UserForm1.ComboBox2.Value Then
               If .Value = "" Then .Value = UserForm1.TextBox1.Text
               If .Offset(, 1).Value = "" Then .Offset(, 1).Value = UserForm1.TextBox2.Text
               If .Offset(, 3).Value = "" Then .Offset(, 3).Value = UserForm1.TextBox2.Text
              End If
             End If
            End With
            Set rngC = .FindNext(rngC)
         Loop While Not rngC Is Nothing And rngC.Address <> fA
      End If
   End With
   
   Unload UserForm1
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton2_Click()

   Unload UserForm1
   
End Sub

Private Sub CommandButton3_Click()
Dim rngC As Range, fA As String
Application.ScreenUpdating = False
   
   With Columns("D")
      Set rngC = .Find(rngA.Value, LookIn:=xlValues)
      If Not rngC Is Nothing Then
        fA = rngC.Address
         Do
            With rngC.Offset(1)
               If .Value <> "" Then .Value = ""
               If .Offset(, 1).Value <> "" Then .Offset(, 1).Value = ""
            End With
            Set rngC = .FindNext(rngC)
         Loop While Not rngC Is Nothing And rngC.Address <> fA
      End If
   End With

   Unload UserForm1
Application.ScreenUpdating = True
End Sub

Private Sub UserForm_Initialize()
Dim cnt As Long

   IsIt
   If UserForm1.Frame1.Visible = True Then
      FillCombos
      UserForm1.ComboBox1.Value = rngA.Row
      With UserForm1.ComboBox2
         cnt = .ListCount
         If rngA.Row > 1 Then
            .Value = UserForm1.ComboBox2.List(cnt - 1)
         Else
            .Value = UserForm1.ComboBox2.List(cnt - 2)
         End If
      End With
   End If
End Sub

Private Sub FillCombos()
Dim rngC As Range, fA As String
Application.ScreenUpdating = False
   
   With Columns("D")
      Set rngC = .Find(rngA.Value, LookIn:=xlValues)
      
      If Not rngC Is Nothing Then
        fA = rngC.Address
         Do
            UserForm1.ComboBox1.AddItem rngC.Row
            UserForm1.ComboBox2.AddItem rngC.Row
            
            Set rngC = .FindNext(rngC)
         Loop While Not rngC Is Nothing And rngC.Address <> fA
      End If
   End With

Application.ScreenUpdating = True

End Sub

Private Sub IsIt()

   UserForm1.Frame1.Visible = False
   Set rngA = ActiveCell
   Set rngA = Intersect(rngA, Columns("D"))
   If Not rngA Is Nothing Then
      If ActiveCell.Value <> "" Then
         UserForm1.Label1.Caption = "Artikel in Spalte A = " & rngA.Value
         UserForm1.Frame1.Visible = True
      Else
         UserForm1.Label1.Caption = "kein Artikel in Spalte A selektiert!"
      End If
   End If

End Sub



  

Betrifft: mog nimma von: fkw48
Geschrieben am: 08.10.2017 10:30:25

https://www.herber.de/bbs/user/116797.xlsm


  

Betrifft: AW: mog nimma von: Kay
Geschrieben am: 08.10.2017 13:12:24

Hallo fwk48,

vielen Lieben Dank für deine Hilfe.
Jetzt habe ich es verstanden und es funktioniert so wie ich es benötige.

Danke für deine Geduld

Viele Grüße


Beiträge aus den Excel-Beispielen zum Thema "wert aus bestimmten bereich kopieren und einfügen"