Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Makro - Verlnüpfung verhindern via vba

Betrifft: Makro - Verlnüpfung verhindern via vba von: Mirko F.
Geschrieben am: 30.09.2020 15:46:04

Hallo,

ich habe eine Arbeitsmappe A, und eine Arbeitsmappe B.
Arbeitsmappe A ist quasi eine Sammelmappe.

Nun kopiere ich via vba aus A angesteuert ein Sheet aus B in A.

In dem besagten Sheet befinden sich REchtecke,denen ich ein makrozugeweisen habe.
Makros heissen in beiden Arbeitsmappen gleich.

Beim kopieren des Sheets konnte ich die Namen unterdrücken jedoch erstellt er in A eine Verknpüfung zu B.

Wie unterdrücke ich das?

anbei der bisherige Code mit dem ich die Datei auswähle (B) und das Sheet kopiere:

Sub Einlesen()
  Dim varDatei As Variant
  Dim Datei As Workbook
  Dim str, strPfad, str2, strStartCol, strEndCol As String
  Dim i As Integer
   Dim lLetzteBesetzteZeileAktuell As Long
    Dim tabellenNummer As Integer
    Dim iAnzahlNeuerZeilen As Integer
 
 Application.ScreenUpdating = False
  
 strPfad = ThisWorkbook.Name

varDatei = Application.GetOpenFilename() 'Hole dir die Inputdateipfad
  If varDatei = False Then
    MsgBox "Der Benutzer hat abgebrochen.", vbInformation
  Else
    Set Datei = Workbooks.Open(varDatei)
    With Datei.Sheets(1)
tabellenNummer = ActiveSheet.Index

Dim n As Name

Sheets(1).Copy Before:=ThisWorkbook.Sheets("Ende")

For Each n In ActiveSheet.Names ' Löschen der Namen in dem Workbook
    n.Delete
Next

Datei.Close True

ThisWorkbook.Activate

End With
End If

End Sub


Vielen DAnk im Voraus.
vg Mirko

Betrifft: AW: Makro - Verlnüpfung verhindern via vba
von: Nepumuk
Geschrieben am: 30.09.2020 16:09:51

Hallo Mirko,

teste mal:

Option Explicit

Sub Einlesen()
    
    Dim varDatei As Variant, avntLinks As Variant, vntLink As Variant
    Dim Datei As Workbook
    Dim n As Name
    
    varDatei = Application.GetOpenFilename() 'Hole dir die Inputdateipfad
    
    If varDatei = False Then
        MsgBox "Der Benutzer hat abgebrochen.", vbInformation
    Else
        
        Application.ScreenUpdating = False
        
        Set Datei = Workbooks.Open(varDatei)
        
        Datei.Worksheets(1).Copy Before:=ThisWorkbook.Worksheets("Ende")
        
        Datei.Close False
        
        For Each n In ActiveSheet.Names ' Löschen der Namen in dem Workbook
            n.Delete
        Next
        
        avntLinks = ThisWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
        
        If IsArray(avntLinks) Then
            
            For Each vntLink In avntLinks
                ThisWorkbook.BreakLink Name:=vntLink, Type:=xlLinkTypeExcelLinks
            Next
            
        End If
        
        Application.ScreenUpdating = True
        
    End If
End Sub

Gruß
Nepumuk

Betrifft: AW: Makro - Verlnüpfung verhindern via vba
von: Mirko F.
Geschrieben am: 01.10.2020 08:16:27

Vielen Dank. Das Funktioniert !!!!
TOP.

vg Mirko