• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Melding als doel bestand is geopend.

  • Onderwerp starter Onderwerp starter HBot
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HBot

Gebruiker
Lid geworden
12 dec 2006
Berichten
325
Geacht forum,

Onderstaande code werkt perfect, is onderdeel van een andere code (via Call data_overzetten) deze opent het doel bestand en kopieert de gegevens en sluit netjes af,
Nu komt het voor dat als het doel bestand is geopend de code (wordt ge)stopt, en de gegevens niet worden gekopieerd, (bron document wordt wel opgeslagen en mail wordt verstuurt. onderdeel van de overkoepelde code)

ik zou graag een msgbox laten zien als het bronbestand is geopend dat men "document later opnieuw opent en dan de data overzet." en deze code wordt onderbroken " exit sub

weet niet goed hoe de code eruit moet zien als de bron is geopend voor "With GetObject(.."

Code:
Sub DATA_Overzetten()
'data overzetten naar klachtenoverzicht, overzicht opslaan en sluiten
  Dim ar
  Dim r
   
  With Sheets("DATA overzetten")
    ar = Array(.Range("Datum").Value, .Range("Document").Value, .Range("Debiteurnr").Value, .Range("Klant").Value, .Range("Artikelnr").Value, .Range("Product").Value, .Range("Klacht").Value, .Range("KLachtCAT").Value, .Range("Coördinator").Value, .Range("Filter1").Value, .Range("Filter2").Value, .Range("Filter3").Value, .Range("Rayon").Value, .Range("Profit").Value, .Range("Contact").Value, .Range("PRodsite").Value, .Range("CoördinatorSite").Value, .Range("Class").Value, .Range("Veroorzaakafd").Value)
  End With
  
  With GetObject("S:\Projecten\Klachten\Nieuwe Klachten procedure 2020\Klachtenoverzicht test.xlsm").Sheets("Klachten overzicht")
  r = Application.Match(ar(1), .Columns(4), 0)
    If IsNumeric(r) Then .Cells(r, 3).Resize(, 19) = ar Else .Cells(Rows.Count, 3).End(xlUp).Offset(1).Resize(, 19) = ar
    .Parent.Close True
  End With
  
End Sub

gr
Henny
 
Met Getobject maakt het niet uit of het bestand geopend of gesloten is, de code zal gewoon z'n werk doen.

Hiermee kijk je of het bestand is geopend of niet.
Met Wb.close sluit je dat bestand.
Code:
Sub hsv()
Dim Wb As Workbook
  On Error Resume Next
    Set Wb = Workbooks("Klachtenoverzicht test.xlsm"")
  If Err.Number = 0 Then
      MsgBox "Bestand " & Wb.Name & " open"
      'Wb.Close
  End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan