• 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.

Complete regel verplaatsen naar ander document

Status
Niet open voor verdere reacties.

GuidoSmeets1979

Nieuwe gebruiker
Lid geworden
20 jan 2012
Berichten
2
Hallo allemaal,

Ik moet een projectplanning (Excel file met actieregels) aanpassen voor gebruik in besprekingen met onze logistieke dienstverlener. D.w.z.: ik wil een hoofdbestand aanhouden en alleen de regels die relevant zijn voor de dienstverlener kopieren naar een ander excelbestand. De regels in het 'dienstverlener-bestand' moeten zich opvolgen, dus geen lege tussenregels. Ik stel me zo voor dat ik in het hoofdbestand een kolom toevoeg genaamd 'relevant voor dienstverlener Y/N', waar dus de waarde Y of N moet worden ingevuld: regels met 'Y' moeten dan wél worden opgenomen in het dienstverlener bestand, regels met 'N' niet. Bij het openen van het dienstverlener-bestand moet de data altijd ververst worden, dus de laatste stand uit het hoofdbestand moet worden opgevraagd.

Hoe kan ik dit het beste aanpakken?

Alvast bedankt!
 

Bijlagen

plaats beide bestanden in c:\test, dit kun je later in de macro aanpassen naar jouw locatie.

Met dank aan HSV & Alphamax voor het helpen met het variabele bereik.

Bekijk bijlage test.rar

Niels
 
Laatst bewerkt:
Een andere optie is om een draaitabel te gebruiken, optie Externe gegevensbron.



Even een aanvullende vraag: is het ook mogelijk de verwijzing naar het externe bestand relatief te maken (oftewel beide in dezelfde map plaatsen en het script laten zoeken in deze map naar een bestand met de betreffende naam)? Zou de oplossing dan erg goed kunnen gebruiken.

Groet Paul
 
Laatst bewerkt door een moderator:
@pollekecrown

Ik gebruik daar zelf deze voor. In de map waar het hoofd bestand staat staat een map "nog te verwerken" na het inlezen worden deze verplaatst naar de map "verwerkt"

Code:
Sub inlezen()
    Dim stPath As String
    Dim stFile As String
    Dim c01 As String
    Dim stFilename As Variant
    Dim stFullname As Object
    Dim stControle As String
    Dim Bopen As Boolean
    Dim irow As Integer
    Dim stBron As String
    Dim stDoel As String
    Dim i As Long
    
    Application.DisplayAlerts = False
    stPath = ThisWorkbook.Path & "\nog te verwerken\"
    stFile = Dir(stPath & "*.xl*")
    If stFile = "" Then MsgBox ("Geen bestanden gevonden in map " & stPath): Exit Sub
    Do While stFile <> ""
        If stFile <> ThisWorkbook.Name Then
            c01 = c01 & stFile & "|" 'opsomming van alle zulke bestanden met | als separator
            stFile = Dir()
        Else
            MsgBox "het bestand in de map " & stPath & " mag niet dezelfde naam dragen als het masterbestand" & vbLf & "Dit masterbestand mag maw. niet in de deirectory van de deelnemers staan" & vbLf & "dit bestand zal niet worden ingelezen"
        End If
    Loop
    stFilename = Split(c01, "|")
    For i = 0 To UBound(stFilename) - 1                      '1 voor 1 al die files inlezen
        Application.ScreenUpdating = False
        On Error Resume Next
        Set stFullname = Nothing
        Set stFullname = stPath & Workbooks(stFilename(i)) 'hiermee test je eerst of dat werkblad misschien al open was
        With CreateObject("Scripting.FileSystemObject")
            stControle = ThisWorkbook.Path & "\verwerkt\" & stFilename(i)
            If .FileExists(stControle) Then
                MsgBox "bestand " & stFilename(i) & " wordt niet verwerkt, deze bestaat al."
                GoTo volgende
            End If
        End With
        Bopen = (Not stFullname Is Nothing)
        If Not Bopen Then Set stFullname = Workbooks.Open(stPath & stFilename(i))
        If stFullname Is Nothing Then
            MsgBox "kan het bestand " & stPath & stFilename(i) & " niet vinden"
        Else
            On Error GoTo 0
'===========================gegevens die uit het bestand gehaald moeten worden=========================================
            With ThisWorkbook.Sheets("deelnemers")
                irow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
                stFullname.Sheets("kopieblad").Rows("11:15").Copy
                .Rows(irow).Insert shift:=xlDown
                .Rows(irow + 2).Hidden = True
                .Rows(irow + 3).Hidden = True
            End With
 '=================================================================================================================
            Application.CutCopyMode = False
            If Not stFullname Is Nothing Then
                If Not Bopen Then stFullname.Close Savechanges:=False
            End If
            stBron = ThisWorkbook.Path & "\nog te verwerken\" & stFilename(i)
            stDoel = ThisWorkbook.Path & "\verwerkt\" & stFilename(i)
            Name stBron As stDoel
        End If
        Application.ScreenUpdating = True
volgende:
    Next
End Sub

Niels
 
graag gedaan,
Zet je de vraag dan op opgelost

Niels
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan