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

Opslaan als met comboboxen

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.055
Besturingssysteem
Wndows 10
Office versie
2016
Hallo forumleden,

Ik ga hier eens proberen om mijn probleem opgelost te krijgen, wasal bezig op dit collega forum
http://www.worksheet.nl/forumexcel/vragen/69820-opslaan-als-met-comboboxen.html
Maar dat heeft nog niets bruikbaars opgeleverd.

Ik probeer met onderstaande code de lijsten die ik maak op te slaan in de juiste projectmap.

Code:
Private Sub CommandButton8_Click()
Dim Wstr As String, sTkstB As String
Dim iFF As Integer
Dim CatRng As Range, CData As Range, CCat As Range
Dim smap As Range
Dim lijst As Range

smap = ComboBox1.Value & ComboBox2.Value
lijst = ComboBox1.Value & ComboBox2.Value & ComboBox3.Value

Application.ScreenUpdating = False

With Sheets("Archief")
    .Range("A:A").AutoFilter Field:=1, Criteria1:=ComboBox1.Value
    Set CatRng = .Range("A2:A" & Rows.Count).SpecialCells(2).SpecialCells(12)
    .Rows("1:1").AutoFilter
    'For Each CCat In CatRng
        'For Each CData In CCat.Offset(0, 1).Resize(, 7).SpecialCells(2)
           ' Wstr = Wstr & CData & vbCrLf
        'Next CData
       ' Wstr = Wstr ' & vbCrLf
    'Next CCat
End With

MkDir "T:\Ontwerpen\" & "smap"


sTkstB = "T:\Ontwerpen\" & ComboBox1.Value & "\" & ComboBox2.Value & "\" & ComboBox3.Value & ".xls"

iFF = FreeFile()
Open sTkstB For Output As iFF
Print #iFF, Wstr
Close #iFF
End Sub

Waarin
combobox1 projectnaam is
combobox2 projectnummer is
combobox3 hoofdtekening nummer is

Maar op een of andere manier krijg ik steeds fouten "fout 70 " geen toegang dus wordt de map naar mijn mening niet gemaakt.

Heeft iemand een idee hoe ik het nog anders kan doen.
 
Ik denk dat je een "\" teken mist in smap = ComboBox1.Value & ComboBox2.Value omdat je smap wel aanmaakt zonder " \" tussen die 2 waarden maar er in sTkstB wel naar verwijst MET "\" teken.

Loop de code eens door in debug mode dan kun je wel zien waar het mis gaat.
 
Laatst bewerkt:
Hallo edmoor,

Dank voor je reactie.

Ik krijg hier al een fout melding op
Code:
map = ComboBox1.Value & ComboBox2.Value
fout code 91

"Object variabele of blokvariabele With is niet ingesteld"

Maar ik heb toch al aangegeven wat het is of zie ik dit verkeerd
 
Je hebt smap gedefinieerd als een Range en dat moet gewoon String zijn.
Daarnaast geldt nog steeds wat ik eerder zei over een "\" die mist en in MkDir "T:\Ontwerpen\" & "smap" mag smap niet tussen " tekens staan omdat hij dan een map aanmaakt met de naam smap in plaats van de vertaling van de variabele smap.
 
Laatst bewerkt:
edmoor,

Heb dit alles gewijzigt en nu geen fout meldingen meer.

Maar er wordt alleen in de dir. ontwerpen een map gemaakt met de naam "map"
Dus gaat het nog niet goed met de benoemingen van "map"en "lijst"
 
heb ook de " " weggehaald maar dan krijg ik wel weer fout 75 "toegangsfout bij pad of bestand.

Voor alle duidelijkheid heb ik dit er nu staan
Code:
Private Sub CommandButton8_Click()
Dim Wstr As String, sTkstB As String
Dim iFF As Integer
Dim CatRng As Range, CData As Range, CCat As Range
Dim smap As String
Dim slijst As String

smap = ComboBox1.Value & "\" & ComboBox2.Value
slijst = ComboBox1.Value & "\" & ComboBox2.Value & "\" & ComboBox3.Value

Application.ScreenUpdating = False

With Sheets("Archief")
    .Range("A:A").AutoFilter Field:=1, Criteria1:=ComboBox1.Value
    Set CatRng = .Range("A2:A" & Rows.Count).SpecialCells(2).SpecialCells(12)
    .Rows("1:1").AutoFilter
    'For Each CCat In CatRng
        'For Each CData In CCat.Offset(0, 1).Resize(, 7).SpecialCells(2)
           ' Wstr = Wstr & CData & vbCrLf
        'Next CData
       ' Wstr = Wstr ' & vbCrLf
    'Next CCat
End With

MkDir "T:\Ontwerpen\" & smap


sTkstB = "T:\Ontwerpen\" & slijst & ".xls"

iFF = FreeFile()
Open sTkstB For Output As iFF
Print #iFF, Wstr
Close #iFF
End Sub
 
Laatst bewerkt:
Waarom maak je die smap aan als je hem verder niet gebruikt?
Waarschijnlijk bestaat die map al en krijg je fout 75 omdat je deze nogmaals probeert aan te maken.
 
Ik heb altijd het idee dat het zo moet.

De map bestaat niet
 
Zo moet het dus niet, altijd eerst controleren of een bestand of map die je wilt gaan aanmaken niet toevallig al bestaat.
Op welke regel krijg je die fout 75?
Wat is op dat moment de vertaling van smap en slijst?
Die smap gebruik je nergens meer na de mkdir ervan.
 
Laatst bewerkt:
Code:
MkDir "T:\Ontwerpen\" & smap

Verder begint het aardig boven mijn VBA kennis te gaan.:eek:
 
Als je in debug mode bent en je Direct venster open is (Beeld/Venster direct) kun je in dat Direct venster ?smap intikken en op Enter drukken.
De vertaling van smap wordt dan getoond. Datzelfde kun je dan voor slijst doen.
Daarna kun je dan kijken of T:\Ontwerpen\Vertaling van smap al bestaat.
 
Laatst bewerkt:


Deze kende ik nog niet, dit is makkelijk.

Krijg de melding "compileerfout sub of functie is niet gedefinieerd"

Maar nu ben ik het spoor beister
 
Als ik smap selecteer en dan op shift-F2 druk dan wordt sprint deze naar de plek waar ik smap definieer.
 
Precies.
Daar is die shift-F2 ook voor. In debug mode spring je van regel naar regel met de F8 toets.
Dan moet je uiteraard wel echt in Debug mode zitten. Dus in de code terwijl de functie loopt.
VBA Debug Mode.
 
Laatst bewerkt:
Ik loop nu helemaal vast.

Heb je misschien een klein voorbeeldje zodat ik hiermee weer verder kan???
 
Daar is geen voorbeeld voor te maken omdat dat het werken met de VBA editor betreft.
Ga naar die functie en klik 1x in het gedeelte voor het woord MKDir. Er verschijnt dan een cirkel, dat is een Break Point.
Druk nu op F5, de functie loopt nu.
Tik vervolgens in het Direct venster ?smap en druk op de Enter toets.
De inhoud van smap wordt daar nu getoond.
 
Laatst bewerkt:
waarde smap = Andre\A00\ is ook juist

Waarde slijst = Andre\A00\A00-ES11-TZ22 is ook juist

Het moet dus ook zo worden

T:\ontwerpe\Andre\A00\A00-ES11-TZ22
 
Laatst bewerkt:
En T:\Ontwerpen\Andre\A00\ bestaat niet?
 
Nee de map Ontwerpen in geheel leeg
 
Krijg je nog steeds diezelfde melding op diezelfde regel?
Heb je wel rechten om daar te schrijven?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan