Thema Datum  Von Nutzer Rating
Antwort
01.08.2017 16:12:11 Tony
NotSolved
Blau Makro: Inhalt aus Zelle ausschneiden und in andere Zelle einfügen (2 Dateien)
01.08.2017 18:40:04 Ben
*****
Solved
02.08.2017 11:24:26 Tony
NotSolved
02.08.2017 11:48:18 Tony
NotSolved

Ansicht des Beitrags:
Von:
Ben
Datum:
01.08.2017 18:40:04
Views:
649
Rating: Antwort:
 Nein
Thema:
Makro: Inhalt aus Zelle ausschneiden und in andere Zelle einfügen (2 Dateien)

Hallo Tony,

vielleicht hilft dieser Code weiter?

Sub FixNV()
    Dim wshList As Worksheet
    Dim rngNV As Range
    Dim bError As Boolean
    Set wshList = ThisWorkbook.Worksheets(1)
    Do
        Set rngNV = wshList.Range("A:A").Find(what:="#N/A")
        If Not rngNV Is Nothing Then
            rngNV.Value = getEAN(bError)
            If bError Then
                MsgBox "Es ist ein Fehler beim auslesen der EAN-Liste aufgetreten", vbCritical
                rngNV.Select
                Exit Do
            End If
        End If
    Loop While Not rngNV Is Nothing
End Sub

Function getEAN(ByRef bError As Boolean) As String
    On Error GoTo Err_Handler
    Dim wbk As Workbook
    Dim wsh As Worksheet
    Dim rngEAN As Range
    bError = False
    Set wbk = GetWorkbook(ThisWorkbook.Path & "\EAN.xlsx")
    Set wsh = wbk.Worksheets(1)
    For Each rngEAN In Intersect(wsh.UsedRange, wsh.Range("A:A")).Cells
        If IsNumeric(rngEAN.Value) Then
            getEAN = rngEAN.Value
            rngEAN.ClearContents
            wbk.Save
            Exit For
        End If
    Next
    wbk.Close
Err_Exit:
    Exit Function
Err_Handler:
    Err.Clear
    bError = True
    Resume Err_Exit
End Function

Function GetWorkbook(sFullFilename As String) As Workbook
    Dim wbk As Workbook
    Dim bFound As Boolean
    For Each wbk In Application.Workbooks
        If LCase(wbk.FullName) = LCase(sFullFilename) Then
            Set GetWorkbook = wbk
            bFound = True
            Exit For
        End If
    Next
    If Not bFound Then
        Set GetWorkbook = Application.Workbooks.Open(sFullFilename)
        ThisWorkbook.Activate
    End If
End Function

Der Code muss in die Arbeitsmappe mit den zu ersetzenden "#NV" Werten als Modul eingesetzt werden.

Zusätzlich muss im gleichen Pfad eine EAN.xlsx Arbeitsmappe vorhanden sein, in der die zur Verfügung stehenden EANs aufgelistet sind.

In einer Mehrbenutzerumgebung kann es dazu kommen, dass ein Fehler beim Öffnen der EAN-Arbeitsmappe auftritt, da eine Arbeitsmappe nicht von mehreren Personen gleichzeitig zum bearbeiten geöffnet werden kann.

Mit dem Aufruf von FixNV werden alle Zellen in der Spalte A durch die EANs ersetzt.

LG, Ben


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
01.08.2017 16:12:11 Tony
NotSolved
Blau Makro: Inhalt aus Zelle ausschneiden und in andere Zelle einfügen (2 Dateien)
01.08.2017 18:40:04 Ben
*****
Solved
02.08.2017 11:24:26 Tony
NotSolved
02.08.2017 11:48:18 Tony
NotSolved