een bepaalde range overhalen/binnenhalen uit een gesloten worksheet

Status
Niet open voor verdere reacties.

marccram

Gebruiker
Lid geworden
20 dec 2015
Berichten
40
Hallo

Ik wil gegevens (een bepaalde range) van een worksheet, die worksheet is NIET geopend, copieren naar mijn geopende, active worksheet naar een bepaalde locatie.

concreet voorbeeld :
Op de locatie drive N:\productie\ staat de worksheet “telling”.

In de worksheet "telling" wil ik de range B5..C10 op het blad “maandag”
copieren naar de worksheet “overzicht” , in het blad “week15 ”, op positie D23 ..E30

de worksheet "overzicht" is open en hierin moet een macro komen die de gegevens uit worksheet "telling" ophaald
( worksheet "telling" is dus niet geopend )


Ik heb al macros gevonden die een gans blad van een gesloten worksheet copieren
( deze macro gebruik ik nu )
maar ik zou graag enkel een bepaalde range naar binnenhalen

Heeft iemand hier een oplossing voor ?



Ik denk dat ik de worksheets NIET kan linken/koppelen via formules ( bijv formules +N:\productie\telling\maandag\+b5 .. )
want in de sheet , op het blad "maandag" zullen bewerkingen gebeuren door de gebruiker ( insert and deletes van rijen en kolommen )
waardoor de formules niet meer juist zullen zijn in de ontvangende sheet , blad "week15"
 
Als je al macro's gevonden hebt. Waarom plaats je dan geen voorbeeldbestandje met hoe je het hebt toegepast? Uit de lap tap tekst mag iemand opmaken dat er iets van a naar b gekopieerd moet worden?
 
Laatst bewerkt:
Hoi,
Zoiets( als ik uw lap tekst goed heb begrepen) zou de klus moeten klaren
 

Bijlagen

Bedankt aan allen voor hun reactie.
Ik heb ondertussen een werkend VBA code
 
Hoi,
Mogen we dan ook uw oplossing weten, kan handig zijn voor andere vraagstellers, of werk je voor de CIA?
 
Hier de coding die ik nu gebruik



Sub ordersbestelkeuken()
'
'
' aanmaken orders keuken
'
' copy eerste de detail en dan pas de header
' ( anders counter volgende new order niet correct )
'
' definities for DETAIL
'
Dim Val5 As String
Dim Val6 As String
Dim kontroleneworders As Integer

kontroleneworders = Range("bestelkeukenaantalorders")

contents = Range("A1").Value
'
'
' kontrole of er nieuwe orders zijn om "aan te maken"
'

If kontroleneworders > 0 Then
'
' posities values from range voor de detail
'
Val5 = Range("poskeukdetfr").Value
Val6 = Range("poskeukdetunti").Value
'
' de from range voor de copy van de detail
'
Sheets("Bestel Keuken").Select
Range(Val5, Val6).Select
Selection.Copy
'
' the to sheet positioneer in de juiste kolom
' en volgende lege row vinden en de copy doen van waardes
'
Sheets("Detail").Select
Range("refdet").Select
Selection.End(xlDown).Select

ActiveCell.Offset(1, 0).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

'
'
'
' definities for HEADER
'
Dim Val7 As String
Dim Val8 As String

contents = Range("A1").Value

'
' posities values from range voor de header
'
Val7 = Range("poskeukheafr").Value
Val8 = Range("poskeukheaunti").Value
'
' de from range voor de copy van de detail
'
Sheets("Bestel Keuken").Select
Range(Val7, Val8).Select
Selection.Copy
'
' the to sheet positioneer in de juiste kolom
' en volgende lege row vinden en de copy doen van waardes
'
Sheets("Header").Select
Range("refhea").Select
Selection.End(xlDown).Select

ActiveCell.Offset(1, 0).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
'
' positie cursor
'
Sheets("Bestel Keuken").Select
Range("A30").Select
Range("bestelkeukenaantalorders").Select
'
Else
MsgBox "Er zijn geen nieuwe orders"

End If

End Sub
 
Zowel de code als de plaatsing ervan verdiend geen schoonheidsprijs. :rolleyes:
 
Code:
Sub ordersbestelkeuken()
 '
 '
 ' aanmaken orders keuken 
 '
 ' copy eerste de detail en dan pas de header
 ' ( anders counter volgende new order niet correct )
 '
 ' definities for DETAIL
 '
 Dim Val5 As String
 Dim Val6 As String
 Dim kontroleneworders As Integer

 kontroleneworders = Range("bestelkeukenaantalorders")

 contents = Range("A1").Value
 '
 '
 ' kontrole of er nieuwe orders zijn om "aan te maken"
 '

 If kontroleneworders > 0 Then
 '
 ' posities values from range voor de detail
 '
 Val5 = Range("poskeukdetfr").Value
 Val6 = Range("poskeukdetunti").Value
 '
 ' de from range voor de copy van de detail
 '
 Sheets("Bestel Keuken").Select
 Range(Val5, Val6).Select
 Selection.Copy
 '
 ' the to sheet positioneer in de juiste kolom
 ' en volgende lege row vinden en de copy doen van waardes
 '
 Sheets("Detail").Select
 Range("refdet").Select
 Selection.End(xlDown).Select

 ActiveCell.Offset(1, 0).Select

 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Application.CutCopyMode = False

 '
 '
 '
 ' definities for HEADER
 '
 Dim Val7 As String
 Dim Val8 As String

 contents = Range("A1").Value

 '
 ' posities values from range voor de header
 '
 Val7 = Range("poskeukheafr").Value
 Val8 = Range("poskeukheaunti").Value
 '
 ' de from range voor de copy van de detail
 '
 Sheets("Bestel Keuken").Select
 Range(Val7, Val8).Select
 Selection.Copy
 '
 ' the to sheet positioneer in de juiste kolom
 ' en volgende lege row vinden en de copy doen van waardes
 '
 Sheets("Header").Select
 Range("refhea").Select
 Selection.End(xlDown).Select

 ActiveCell.Offset(1, 0).Select

 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Application.CutCopyMode = False
 '
 ' positie cursor
 '
 Sheets("Bestel Keuken").Select
 Range("A30").Select
 Range("bestelkeukenaantalorders").Select
 '
 Else
 MsgBox "Er zijn geen nieuwe orders"

 End If

 End Sub
 
Wat heeft deze code met de vraag te maken? Ik zie nergens dat er gegevens uit een gesloten bestand gehaald worden. Plaats er even een bestand bij dan is de code volgens mij veel sneller en efficiënter te maken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan