Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1868to1872
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
Datei wird nicht aktiviert
01.02.2022 12:14:20
kurt
Guten Morgen zusammen,
Yal hatte gestern geholfen, das Kopieren, da klappt alles.
Habe nur das Problem:
Wenn ich die Datei in der ich die Adressdaten kopiere, bleibt die Datei aktiv, wenn die Datei vom Laufwerk
geöffnet wurde.

Wenn die Datei schon aktiv ist, bleib ich in der Datei Quelldatei. So sollte es sein.
2. Habe ich die Adresse kopiert, wird in der Ziel Datei die kopierte Zeile komplett selectiert bzw. ist selectiert,
hier sollte der Courser in der 1. kopierten Zelle stehen, wenn möglich.
Anbei beide Makros:

Public Sub Adresse_in_Rechnungs_Datenbank_kopieren()
Dim Qws As Worksheet            'Quell-Worksheet
Dim Zws As Worksheet            'Ziel-Worksheet
Dim ZielZelle As Range
Dim SuchBegriff As String
Dim dn As String
dn = ThisWorkbook.Name
Application.ScreenUpdating = False
'Worksheet-Variable setzen
Set Qws = ActiveSheet
Set Zws = Öffnen("D:\#_Adress_Rechnungs_Datenbank.xlsm").Worksheets("Adressen")        'Öffnen ist Function
Qws.Activate
'Begriff suchen
' SuchBegriff = Qws.Range("C13")
' Set ZielZelle = Zws.Range("B:B").Find(What:=SuchBegriff, After:=Zws.Range("B3"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
'Suchergebnis prüfen: suchBegriff nicht gefunden: Am Ende Anfügen
If ZielZelle Is Nothing Then
Set ZielZelle = Zws.Range("B999999").End(xlUp).Offset(1, 0)
End If
'übertragen
Zws.Unprotect (getStrPasswort)
Qws.Range("C12:C17").Copy
ZielZelle.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Zws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=getStrPasswort
Application.CutCopyMode = False
Workbooks(dn).Activate
Qws.Activate
Qws.Range("C12").Select
Application.ScreenUpdating = True
End Sub

Private Function Öffnen(DateiPfad As String) As Workbook
Dim W As Workbook
Dim WBName As String
'---- meine Idee dn ---------------
Dim dn As String
dn = ThisWorkbook.Name
On Error Resume Next
'setze die Datei falls geöffnet
WBName = Mid(DateiPfad, InStrRev("\", DateiPfad) + 1)
Set W = Workbooks(WBName)
'wenn nicht, öffne diese
If W Is Nothing Then
Set W = Workbooks.Open(DateiPfad)
Workbooks(dn).Activate              '-- aus meiner Idee
End If
Set Öffnen = W
End Function
gruß kurt k

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei wird nicht aktiviert
01.02.2022 12:26:36
Rudi
Hallo,
Workbooks(dn).Activate
wird ja nur ausgeführt, wenn w=Nothing
Gruß
Rudi
Leider nicht
01.02.2022 13:37:07
kurt
Hallo Rudi,
die Daten werden kopiert aber leider bleibt die Zieldatei offen.
Wenn die Zieldatei schon geöffnet war, kein Problem, bleib ich in der Quelldatei.
gruß kurt k

Private Function Öffnen(DateiPfad As String) As Workbook
Dim W As Workbook
Dim WBName As String
'---- meine Idee dn ---------------
Dim dn As String
dn = ThisWorkbook.Name
On Error Resume Next
'setze die Datei falls geöffnet
WBName = Mid(DateiPfad, InStrRev("\", DateiPfad) + 1)
Set W = Workbooks(WBName)
'wenn nicht, öffne diese
If W Is Nothing Then
Set W = Workbooks.Open(DateiPfad)
End If
Set Öffnen = W
W = Nothing
Workbooks(dn).Activate              '-- aus meiner Idee
End Function

Anzeige
AW: Leider nicht
01.02.2022 15:40:43
kurt
Hallo Rudi,
habe ich verändert:

Private Function Öffnen(DateiPfad As String) As Workbook
Dim W As Workbook
Dim WBName As String
'---- meine Idee dn ---------------
Dim dn As String
dn = ThisWorkbook.Name
On Error Resume Next
'setze die Datei falls geöffnet
WBName = Mid(DateiPfad, InStrRev("\", DateiPfad) + 1)
Set W = Workbooks(WBName)
'wenn nicht, öffne diese
If W Is Nothing Then
Set W = Workbooks.Open(DateiPfad)
End If
Set Öffnen = W
W = Nothing
Workbooks(dn).Activate              '-- aus meiner Idee
End Function
die Zieldatei ist immer noch auf der Oberfläche, eigentlich wollte ich das die Quelldatei wieder aktiviert wird.
mfg kurt k
Anzeige
AW: Leider nicht
01.02.2022 16:30:21
Rudi
versuch mal:

Public Sub Adresse_in_Rechnungs_Datenbank_kopieren()
Dim wksQUELLE As Worksheet            'Quell-Worksheet
Dim wksZIEL As Worksheet            'Ziel-Worksheet
Dim wkbZIEL As Workbook, wkbQUELLE As Workbook
Dim rngZIEL As Range
Dim strSUCH As String
Const cstr_wkbQUELLE As String = "#_Adress_Rechnungs_Datenbank.xlsm"
Const cstr_wksQUELLE As String = "Adressen"
Const getStrPassWort = "x"
Set wkbQUELLE = ActiveWorkbook
Set wksQUELLE = ActiveSheet
Application.ScreenUpdating = False
On Error Resume Next
Set wkbZIEL = Workbooks(cstr_wkbQUELLE)
On Error GoTo 0
If wkbZIEL Is Nothing Then
Set wkbZIEL = Workbooks.Open("D:\" & cstr_wkbQUELLE)
End If
'Worksheet-Variable setzen
Set wksZIEL = wkbZIEL.Worksheets(cstr_wksQUELLE)
'Begriff suchen
' strSUCH = wksQuelle.Range("C13")
' Set rngZiel = wksZiel.Range("B:B").Find(What:=strSUCH, After:=wksZIEL.Range("B3"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
'Suchergebnis prüfen: strSUCH nicht gefunden: Am Ende Anfügen
If rngZIEL Is Nothing Then
Set rngZIEL = wksZIEL.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
End If
'übertragen
wksZIEL.Unprotect (getStrPassWort)
wksQUELLE.Range("C12:C17").Copy
rngZIEL.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
wksZIEL.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=getStrPassWort
Application.CutCopyMode = False
wkbZIEL.Close True
wkbQUELLE.Activate
wksQUELLE.Activate
wksQUELLE.Range("C12").Select
Application.ScreenUpdating = True
End Sub
Gruß
Rudi
Anzeige
Rudi perfekt, wo kann ich
01.02.2022 18:07:46
kurt
Guten Abend Rudi,
super einwandfrei !
Wo kann ich das Makro für die Nummerierung einbinden ?

Public Sub Neu_Nummerieren()
Dim lZeile  As Long
Dim Lfd_Nr  As Integer
Lfd_Nr = 1
With Worksheets("Adressen")
For lZeile = 3 To Range("B650000").End(xlUp).Row
.Range("A" & lZeile).Value = Lfd_Nr
Lfd_Nr = Lfd_Nr + 1
Next lZeile
End With
End Sub
Hier wird Fehler angezeigt !
'übertragen
wksZIEL.Unprotect (getStrPassWort)
wksQUELLE.Range("C12:C17").Copy
rngZIEL.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
wksZIEL.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=getStrPassWort
Call Neu_Nummerieren
Application.CutCopyMode = False
'wkbZIEL.Close True
wkbQUELLE.Activate
wksQUELLE.Activate
wksQUELLE.Range("C12").Select
Application.ScreenUpdating = True
mfg kurt k
Anzeige
AW: Rudi perfekt, wo kann ich
01.02.2022 19:02:55
Rudi
Hallo,
am besten das Worksheet mitgeben.

Public Sub Neu_Nummerieren(wksZIEL As Worksheet)
With wksZIEL
With .Range(.Cells(3, 2), .Cells(.Rows.Count, 2).End(xlUp)).Offset(, -1)
.FormulaR1C1 = "=row()-2"
.Value = .Value
End With
End With
End Sub
Aufruf nach dem Kopieren mit

Call Neu_Nummerieren(wksZIEL)
Gruß
Rudi
Rudi, kleine Nachfrage...
01.02.2022 19:06:13
kurt
Hallo Rudi,
danke nochmals für die sehr gute Unterstützung.
Ich möchte gern hiermit die Userform öffnen:

Public Sub Adresse_aus_Rechnungs_holen()
' MsgBox " noch nicht aktiv !"
Dim wksQUELLE As Worksheet            'Quell-Worksheet
Dim wksZIEL As Worksheet              'Ziel-Worksheet
Dim wkbZIEL As Workbook, wkbQUELLE As Workbook
Dim rngZIEL As Range
Dim strSUCH As String
Const cstr_wkbQUELLE As String = "#_Adress_Rechnungs_Datenbank.xlsm"
Const cstr_wksQUELLE As String = "Adressen"
Const getStrPassWort = "passi#"
Set wkbQUELLE = ActiveWorkbook
Set wksQUELLE = ActiveSheet
Application.ScreenUpdating = False
On Error Resume Next
Set wkbZIEL = Workbooks(cstr_wkbQUELLE)
On Error GoTo 0
If wkbZIEL Is Nothing Then
Set wkbZIEL = Workbooks.Open("D:\" & cstr_wkbQUELLE)
End If
'Worksheet-Variable setzen
Set wksZIEL = wkbZIEL.Worksheets(cstr_wksQUELLE)
  wkbQUELLE.UserForm1.Show
End Sub
die Datei wird geöffnet aber nicht die Userform !
mfg kurt k
Anzeige
AW: Rudi, kleine Nachfrage...
01.02.2022 19:27:21
Rudi
was hat das denn jetzt mit der ursprünglichen Frage zu tun?
Bau die UF in deine Quellmappe ein. Sonst bekommst du ohnehin ein Problem mit den Objekten (wkbZIEL, wksZIEL)
Bin erst mal raus.
Gruß
Rudi
OK Danke Rudi ! --))
01.02.2022 19:29:00
kurt
DANKE Rudi !Habe es geschafft -)
01.02.2022 18:55:35
kurt
Guten Abend Rudi,
habe es geschafft.
'übertragen
wksZIEL.Unprotect (getStrPassWort)
wksQUELLE.Range("C12:C17").Copy
rngZIEL.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Dim i As Long
With Application
.EnableEvents = False 'Ereignisse ausschalten
End With
With wksZIEL
For i = 3 To .Cells(.Rows.Count, 2).End(xlUp).Row
.Cells(i, 1).Value = i - 2 'hier der Abstand zu OBEN rein wo anfängt
Next
End With
With Application
.EnableEvents = True
End With
wksZIEL.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=getStrPassWort
Application.CutCopyMode = False
so einwandfrei !
mfg kurt k
Anzeige

156 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige