Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1432to1436
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makroveränderung kopieren

Makroveränderung kopieren
23.06.2015 08:06:28
Thomas
Hallo,
ich habe hier ein Makro gefunden welches innerhalb des Tabellenblatts ( Vorgang ) nach einen Begriff sucht und die Ergebniszeilen in das Blatt "Begriffauswertung" kopiert.
Dies ist auch super nur leider werden die Formeln mitkopiert ich benötige jedoch nur die Formate und die Werte. ( Falls nur die Werte gehen ist dies auch ok).
Toll wäre auch wenn ich im Makro selbst die Spalten welche kopiert werden sollen mit angeben könnte.
Kann hier jemand helfen?
Oder hat jemand so etwas vielleicht schon?
vielen dank schon mal im voraus.
liebe Grüße thomas
Sub Begriff_Suchen_Kopieren_Begriffauswertung()
'Sucht einen Begriff in einem bestimmten Blatt,
'und kopiert die Ergebnisse in ein anderes Blatt
Static Suchbegriff As String
'Hinweis zur Variablendeklaration: Im Beispielcode waren nur
'jeweils die letzten Variablen korrekt deklariert. Alle anderen
'Variablen waren (autom.) vom Typ "Variant". Es reicht nicht,
'den Typ nur am Ende einer Zeile anzugeben.
Dim Zelle As Variant, ErsteAdresse As String
Dim LetzteZelle As Integer, intCount As Integer
Application.ScreenUpdating = False
Worksheets("Begriffauswertung").Cells.Clear 'Alte Tabelleninhalte löschen
Suchbegriff = InputBox(Prompt:="Bitte Suchbegriff eingeben:", _
Default:=Suchbegriff)
If Suchbegriff = "" Then Exit Sub
With Worksheets("vorgang")
'Überschriftenzeile kopieren ...
.Rows(1).Copy Destination:=Worksheets("Begriffauswertung").Range("a1")
With .UsedRange
Set Zelle = .Find(What:=Suchbegriff, After:=Range("A1"), _
LookIn:=xlValues, lookat:=xlWhole, _
SearchOrder:=xlNext, MatchCase:=True)
If Not Zelle Is Nothing Then
ErsteAdresse = Zelle.Address
LetzteZelle = 2
Do
.Rows(Zelle.Row).Copy _
Destination:=Worksheets("Begriffauswertung") _
.Cells(LetzteZelle, 1)
Set Zelle = .FindNext(Zelle)
LetzteZelle = LetzteZelle + 1
Loop While Not Zelle Is Nothing And _
Zelle.Address  ErsteAdresse
End If
Worksheets("Begriffauswertung").Select
Range("a1").Select
End With
End With
Application.ScreenUpdating = True
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroveränderung kopieren
23.06.2015 09:49:10
Nepumuk
Hallo,
teste mal:
Public Sub Begriff_Suchen_Kopieren_Begriffauswertung()
    'Sucht einen Begriff in einem bestimmten Blatt,
    'und kopiert die Ergebnisse in ein anderes Blatt
    Static Suchbegriff As String
    'Hinweis zur Variablendeklaration: Im Beispielcode waren nur
    'jeweils die letzten Variablen korrekt deklariert. Alle anderen
    'Variablen waren (autom.) vom Typ "Variant". Es reicht nicht,
    'den Typ nur am Ende einer Zeile anzugeben.
    Dim Zelle As Range, ErsteAdresse As String
    Dim LetzteZelle As Long
    
    Suchbegriff = InputBox(Prompt:="Bitte Suchbegriff eingeben:", _
        Default:=Suchbegriff)
    
    If Suchbegriff <> "" Then
        
        Application.ScreenUpdating = False
        Worksheets("Begriffauswertung").Cells.Clear 'Alte Tabelleninhalte löschen
        
        With Worksheets("vorgang")
            'Überschriftenzeile kopieren ...
            .Rows(1).Copy Destination:=Worksheets("Begriffauswertung").Range("A1")
            
            With .UsedRange
                Set Zelle = .Find(What:=Suchbegriff, After:=Range("A1"), _
                    LookIn:=xlValues, lookat:=xlWhole, _
                    SearchOrder:=xlNext, MatchCase:=True)
                If Not Zelle Is Nothing Then
                    ErsteAdresse = Zelle.Address
                    LetzteZelle = 2
                    Do
                        .Rows(Zelle.Row).Copy
                        Worksheets("Begriffauswertung").Cells(LetzteZelle, 1) _
                            .PasteSpecial Paste:=xlPasteValuesAndNumberFormats
                        LetzteZelle = LetzteZelle + 1
                        Set Zelle = .FindNext(Zelle)
                    Loop Until Zelle.Address = ErsteAdresse
                End If
                Application.Goto Worksheets("Begriffauswertung").Range("A1"), True
            End With
        End With
        Application.ScreenUpdating = True
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Makroveränderung kopieren
23.06.2015 11:31:23
Thomas
Hallo Nepumuk
das ist Cool
besten Dank schon mal die Formeln sind weg.
Kann ich hier auch bestimmte spalten welche kopiert werden sollen angeben? ( oder nicht kopiert würde auch gehen)
liebe grüsse Thomas

AW: Makroveränderung kopieren
23.06.2015 11:46:50
Nepumuk
Hallo,
welche kopiert werden sollen
ja das geht.
Gruß
Nepumuk

AW: Makroveränderung kopieren
23.06.2015 14:13:39
Thomas
Hallo Nepumuk,
kannst Du mir als Beispiel Spalte d- F und j-y zeigen?
liebe grüsse Thomas

AW: Makroveränderung kopieren
23.06.2015 14:20:51
Nepumuk
Hallo,
so:
Union(.Range(.Cells(Zelle.Row, 4), .Cells(Zelle.Row, 6)), _
    .Range(.Cells(Zelle.Row, 10), .Cells(Zelle.Row, 25))).Copy

Gruß
Nepumuk

Anzeige
AW: Makroveränderung kopieren
23.06.2015 16:49:24
Thomas
Hallo Nepumuk,
besten dank dies klappt super. Kannst Du mir das auch zeigen wie ich dies mit der Überschrift mache?
Zur Zeit wird die ganze Überschrift kopiert und dies passt dann nicht mehr mit den ausgewählten Spalten überein.
Ich habe schon ein haufen versucht aber es will nicht klappen.
liebe güsse thomas

AW: Makroveränderung kopieren
23.06.2015 17:13:02
Nepumuk
Hallo,
na einfach so:
Union(.Range(.Cells(1, 4), .Cells(1, 6)), _
    .Range(.Cells(1, 10), .Cells(1, 25))).Copy _
    Destination:=Worksheets("Begriffauswertung").Range("A1")

Gruß
Nepumuk

Anzeige
AW: Makroveränderung kopieren
23.06.2015 18:06:54
Thomas
Hallo Nepumuk,
ich raffe es einfach nicht. Baust Du mir dies ein?
Jetzt funktioniert zwar die Überschrift aber die gefundenen Zeilen kommen nicht mehr. Dafür aber der Wert aus der Überschriftenspalte 4.
Public Sub Begriff_Suchen_Kopieren_Begriffauswertung()
'Sucht einen Begriff in einem bestimmten Blatt,
'und kopiert die Ergebnisse in ein anderes Blatt
Static Suchbegriff As String
'Hinweis zur Variablendeklaration: Im Beispielcode waren nur
'jeweils die letzten Variablen korrekt deklariert. Alle anderen
'Variablen waren (autom.) vom Typ "Variant". Es reicht nicht,
'den Typ nur am Ende einer Zeile anzugeben.
Dim Zelle As Range, ErsteAdresse As String
Dim LetzteZelle As Long
Suchbegriff = InputBox(Prompt:="Bitte Suchbegriff eingeben:", _
Default:=Suchbegriff)
If Suchbegriff  "" Then
Application.ScreenUpdating = False
Worksheets("Begriffauswertung").Cells.Clear 'Alte Tabelleninhalte löschen
With Worksheets("vorgang")
'Überschriftenzeile kopieren ...
' für ganze überschrift
'.Rows(1).Copy Destination:=Worksheets("Begriffauswertung").Range("A1")
'+++++++++ ab hier überschrift kopieren++++++++++++++
'+++++++++++++ bis hier überschrift kopieren ++++++++++++++++++++++
With .UsedRange
Set Zelle = .Find(What:=Suchbegriff, After:=Range("A1"), _
LookIn:=xlValues, lookat:=xlWhole, _
SearchOrder:=xlNext, MatchCase:=True)
If Not Zelle Is Nothing Then
ErsteAdresse = Zelle.Address
LetzteZelle = 2
Do
'.Rows(Zelle.Row).Copy
Union(.Range(.Cells(1, 4), .Cells(1, 6)), _
.Range(.Cells(1, 10), .Cells(1, 11))).Copy _
Destination:=Worksheets("Begriffauswertung").Range("A1")
Worksheets("Begriffauswertung").Cells(LetzteZelle, 1) _
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
LetzteZelle = LetzteZelle + 1
Set Zelle = .FindNext(Zelle)
Loop Until Zelle.Address = ErsteAdresse
End If
Application.Goto Worksheets("Begriffauswertung").Range("A1"), True
End With
End With
Application.ScreenUpdating = True
End If
End Sub

Anzeige
AW: Makroveränderung kopieren
23.06.2015 18:30:13
Nepumuk
Hallo,
eieieieiei !!!
Public Sub Begriff_Suchen_Kopieren_Begriffauswertung()
    'Sucht einen Begriff in einem bestimmten Blatt,
    'und kopiert die Ergebnisse in ein anderes Blatt
    Static Suchbegriff As String
    'Hinweis zur Variablendeklaration: Im Beispielcode waren nur
    'jeweils die letzten Variablen korrekt deklariert. Alle anderen
    'Variablen waren (autom.) vom Typ "Variant". Es reicht nicht,
    'den Typ nur am Ende einer Zeile anzugeben.
    Dim Zelle As Range, ErsteAdresse As String
    Dim LetzteZelle As Long
    
    Suchbegriff = InputBox(Prompt:="Bitte Suchbegriff eingeben:", _
        Default:=Suchbegriff)
    
    If Suchbegriff <> "" Then
        
        Application.ScreenUpdating = False
        
        Worksheets("Begriffauswertung").Cells.Clear 'Alte Tabelleninhalte löschen
        
        With Worksheets("vorgang")
            
            Union(.Range(.Cells(1, 4), .Cells(1, 6)), _
                .Range(.Cells(1, 10), .Cells(1, 25))).Copy _
                Destination:=Worksheets("Begriffauswertung").Range("A1")
            
            With .UsedRange
                Set Zelle = .Find(What:=Suchbegriff, After:=Range("A1"), _
                    LookIn:=xlValues, LookAt:=xlWhole, _
                    SearchOrder:=xlNext, MatchCase:=True)
                If Not Zelle Is Nothing Then
                    ErsteAdresse = Zelle.Address
                    LetzteZelle = 2
                    Do
                        Union(.Range(.Cells(Zelle.Row, 4), .Cells(Zelle.Row, 6)), _
                            .Range(.Cells(Zelle.Row, 10), .Cells(Zelle.Row, 25))).Copy
                        Worksheets("Begriffauswertung").Cells(LetzteZelle, 1) _
                            .PasteSpecial Paste:=xlPasteValuesAndNumberFormats
                        LetzteZelle = LetzteZelle + 1
                        Set Zelle = .FindNext(Zelle)
                    Loop Until Zelle.Address = ErsteAdresse
                End If
                With Application
                    .CutCopyMode = False
                    .Goto Worksheets("Begriffauswertung").Range("A1"), True
                End With
            End With
        End With
        Application.ScreenUpdating = True
    End If
End Sub

Gruß
Nepumuk

Anzeige
besten Dank an Nepumuk
23.06.2015 19:11:59
Thomas
Hallo Nepumuk,
ich weiss ich weiss. Habe besten dank für deine Hilfe es funktioniert klasse.
liebe grüsse Thomas

Sorry Nebumuk doch noch was
23.06.2015 20:01:23
Thomas
Hallo Nepumuk
wenn Du von mir nicht schon die Nase voll hast.
Ich könnte noch gebrauchen das dies Makro nicht das gesamte Tabellenblatt durchsucht sondern nur bestimmte Spalten. Sagen wir Spalte A C und Z.
Ich bekomme zu viele treffer ich habe eine Tabelle mit 130 spalten.
Bekommst Du das auch noch hin?
liebe grüße thomas

AW: Sorry Nebumuk doch noch was
23.06.2015 22:26:02
Nepumuk
Hallo,
teste mal:
Public Sub Begriff_Suchen_Kopieren_Begriffauswertung()
    'Sucht einen Begriff in einem bestimmten Blatt,
    'und kopiert die Ergebnisse in ein anderes Blatt
    Static Suchbegriff As String
    'Hinweis zur Variablendeklaration: Im Beispielcode waren nur
    'jeweils die letzten Variablen korrekt deklariert. Alle anderen
    'Variablen waren (autom.) vom Typ "Variant". Es reicht nicht,
    'den Typ nur am Ende einer Zeile anzugeben.
    Dim Zelle As Range, Suchbereich As Range
    Dim ErsteAdresse As String
    Dim LetzteZelle As Long
    Suchbegriff = InputBox(Prompt:="Bitte Suchbegriff eingeben:", Default:=Suchbegriff)
    If Suchbegriff <> "" Then
        Application.ScreenUpdating = False
        Worksheets("Begriffauswertung").Cells.Clear 'Alte Tabelleninhalte löschen
        With Worksheets("vorgang")
            Union(.Range(.Cells(1, 4), .Cells(1, 6)), _
                .Range(.Cells(1, 10), .Cells(1, 25))).Copy _
                Destination:=Worksheets("Begriffauswertung").Range("A1")
            Set Suchbereich = Union(.Columns(1), .Columns(3), .Columns(26))
            Set Zelle = Suchbereich.Find(What:=Suchbegriff, After:=Range("A1"), _
                LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
            If Not Zelle Is Nothing Then
                ErsteAdresse = Zelle.Address
                LetzteZelle = 2
                Do
                    Union(.Range(.Cells(Zelle.Row, 4), .Cells(Zelle.Row, 6)), _
                        .Range(.Cells(Zelle.Row, 10), .Cells(Zelle.Row, 25))).Copy
                    Worksheets("Begriffauswertung").Cells(LetzteZelle, 1) _
                        .PasteSpecial Paste:=xlPasteValuesAndNumberFormats
                    LetzteZelle = LetzteZelle + 1
                    Set Zelle = Suchbereich.FindNext(Zelle)
                Loop Until Zelle.Address = ErsteAdresse
            End If
            Set Suchbereich = Nothing
            Set Zelle = Nothing
            With Application
                .CutCopyMode = False
                .Goto Worksheets("Begriffauswertung").Range("A1"), True
            End With
        End With
        Application.ScreenUpdating = True
    End If
End Sub

Gruß
Nepumuk

Anzeige
vielen dank an Nepumuk
24.06.2015 05:37:56
Thomas
Hallo Nepumuk,
jetzt passt alles. Habe vielen vielen dank.
liebe Grüße thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige