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

Met een geopend bestandsmap verplaatsen.

Status
Niet open voor verdere reacties.
dat klopt maar daar was ik vanaf het begin al van bewust.
nu ben ik niet zo goed in uitleggen van wat ik wil. maar dank voor het geduld en.... de OPLOSSING!
 
Daar is Helpmij voor :)
 
Het hele concept deugt niet.
Je moet geen bestanden/directories wijzigen vanwege een statuswijziging (bijv. afgehandeld)
In een echte database (en die probeer je te imiteren in Excel), wijzig je gewoon een kenmerk/eigenschap van een record; dat is voldoende.
Waar de bestanden/direcotries staan en/of hoe ze heten doet er dan helemaal niet toe.
Verlaat het papierdenken en schakel over op geautomatiseerde gegevensverwerking.
 
snb,

als ik alles op mijn mobiel kan in zien en bij kan zetten (foto tekeningen enz) is wel schitterend.
en daarom is dit nu zo.
het is een opzet van 15 jaar wat telkens iets aangepast word.
en ja het had zeker ander gemoeten.
we roeien met de riemen die we hebben.
 
Alleen het sluiten van de folder is niet voor elkaar te krijgen.


Code:
Sub Move_Rename_Folder()
'This example move the folder from FromPath to ToPath.
 
    
    Dim FSO As Object
    Dim FromPath As String
    Dim ToPath As String
    Dim DefaultFolder As String
    
    DefaultFolder = "C:\Dropbox\documenten\"
    
    
    FromPath = DefaultFolder & Year(Now()) & "\offertes\" & Sheets("Blad1").Range("A1")  'Cell is Foldernaam
    ToPath = DefaultFolder & Year(Now()) & "\Afgehandeld\"    '<< Change
    'Note: It is not possible to use a folder that exist in ToPath
    
FromPath.Close  'als deze folder nog open staat dan eerst sluiten. ( dit werkt niet)

    If Right(FromPath, 1) = "" Then
        FromPath = Left(FromPath, Len(FromPath) - 1)
    End If

    ToPath = ToPath & "" & Sheets("Blad1").Range("A1")
    Set FSO = CreateObject("scripting.filesystemobject")

    FSO.MoveFolder Source:=FromPath, Destination:=ToPath
    MsgBox "De map is verplaatst van " & FromPath & " to " & ToPath
    
End Sub
 
Dat gaat ook niet maar zo.
Dat valt volledig buiten de context van VBA omdat een folder een Explorer object is.

Je kan dit doen:
Code:
Sub FolderSluiten()
    CloseWindow ("Downloads") [COLOR="#008000"]'Window Caption, Case sensitive[/COLOR]
End Sub

En dan dit in een Module:
Code:
Private Declare PtrSafe Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare PtrSafe Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare PtrSafe Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Const WM_CLOSE = &H10
Const GW_HWNDFIRST = 0
Const GW_HWNDLAST = 1
Const GW_HWNDNEXT = 2

Private Sub CloseWindow(WindowCaption As String)
    Dim lngWindow As Long, lngWindowLast As Long
    Dim strClassSought As String: strClassSought = "CabinetWClass"   [COLOR="#008000"]'type of window to close[/COLOR]
    Dim strTitleToClose As String: strTitleToClose = WindowCaption   [COLOR="#008000"]'windows to include[/COLOR]
    Dim strClass As String, strTitle As String
    Dim i As Integer
    
    lngWindow = GetWindow(Application.hwnd, GW_HWNDFIRST)
    lngWindowLast = GetWindow(Application.hwnd, GW_HWNDLAST)
    
    [COLOR="#008000"]'now loop through all windows[/COLOR]
    Do While lngWindow <> lngWindowLast
        [COLOR="#008000"]'create a buffer for the class name and the window title[/COLOR]
        strClass = Space(100)
        strTitle = Space(100)
        'get the class name and the window title
        GetWindowText lngWindow, strTitle, 100
        GetClassName lngWindow, strClass, 100
     
        [COLOR="#008000"]'check whether this window matches the criteria[/COLOR]
        If InStr(strClass, strClassSought) <> 0 And InStr(strTitle, strTitleToClose) <> 0 Then
            [COLOR="#008000"]'post a message to the window to close itself[/COLOR]
            PostMessage lngWindow, WM_CLOSE, 0&, 0&
            [COLOR="#008000"]'start all over[/COLOR]
            lngWindow = GetWindow(Application.hwnd, GW_HWNDFIRST)
        Else
            [COLOR="#008000"]'get the next window[/COLOR]
            lngWindow = GetWindow(lngWindow, GW_HWNDNEXT)
        End If
        C1 = C1 + 1: Application.StatusBar = C1: DoEvents
    Loop
End Sub
Voor 32-bit Office laat je in de functie declaraties het woord PtrSafe weg of gebruik er compiler directives voor.
 
Laatst bewerkt:
Beste Edmoor,

het werkt geweldig, precies zoals ik wil hebben. dank je wel.
maar waar kan ik dit soort code vinden?
ik neem aan dat u dit niet zo even uit uW mouw schuD? :o:o
zal hem op opgelost zetten.
 
Laatst bewerkt:
ik neem aan dat u dit niet zo even uit uw mouw schud?

Tuurlijk wel! :p
Haha, nee, dat was een kwestie van Google de juiste vragen stellen.
 
Laatst bewerkt:
Beste Edmoor,

nu ik hem een tijd hebt gebruikt bemerk ik dat deze in Windows de OLE sloopt.

had alle aanwijzingen over OLE via internet opgezocht en opgevolgd maar niets helpt er.
onder tussen al 3x mijn Windows opnieuw moeten installeren.
had even niet door dat het aan de code lag.
 
nu ik hem een tijd hebt gebruikt bemerk ik dat deze in Windows de OLE sloopt.
Ik heb geen idee wat je daarmee bedoelt en die code sloopt helemaal niets.
 
@Edm,

Kun jij me uitleggen wat een 'open folder' is ?
 
Ik ga er vanuit dat TS en folder bedoelt die in de Verkenner open staat.
 
De open folder is de verkenner map.

de foutmelding was telkens "Microsoft Excel wacht op een andere toepassing om een OLE-actie te voltooien"
outlook kon ik met geen mogelijkheid meer openen en moest via taakbeheer outlook en excel beeindigen.

nadat ik de computer opnieuw op had gestart bleef hij de fout behouden en moest Windows opnieuw geïnstalleerd worden en vervolgens office.
 
Waarom zou je in de verkenner een venster willen hebben met de inhoud van een folder ?
Als ik in de verkenner een venster met de inhoud van folder "G:\downloads\FINVIZ.com - Stock Screener_bestanden\container_data" open heb staan funktioneert de volgende macro vlekkelings.
Het gaat natuurlijk niet goed als de doelfolder al bestaat.
Ik denk dat er heel wat anders aan de hand is op jouw computer.

Code:
Sub M_snb()
   With CreateObject("scripting.filesystemobject")
      .movefolder "G:\downloads\FINVIZ.com - Stock Screener_bestanden\container_data", "G:\verbazing_001"
   End With
End Sub
 
Laatst bewerkt:
beste snb

er wordt een bestand geopend in een map offerte klink.
dan staat op de achtergrond nog steeds die map ( offerte/klink bv) open.
wanneer ik dan een factuur maak is mijn bedoeling om die map ( klink die nog open staat) te laten sluiten en vervolgens een ander bestand ( map verplaatsen) in een andere map( document) te openen met een macro die de hele map (offerte/klink) verplaatst naar een map afgehandeld.
 
Laatst bewerkt:
Gebruik ondubbelzinnige taal: bestand, directory, werkblad, dynamische tabel, draaitabel, grafiek, afbeelding
Schrap: werkboek, map, folder, diagram en allerlei andere slechte, inconsistente MS-vertalingen.

En overigens verwijs ik je naar #23.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan