Save as yes no

Status
Niet open voor verdere reacties.

pouletten

Gebruiker
Lid geworden
13 apr 2010
Berichten
70
Hallo allemaal,

Ik heb vandaag een macro gemaakt met behulp van allerlei dingen die ik op internet had gevonden. Dit werkte prima, maar ineens liep excel vast en was het allemaal verdwenen. Nu heb ik bijna alles weer aan de praat gekregen behalve het volgende:

ik wil een msgbox hebben met ja en nee knop (vbyesNo) met de vraag of de gebruiker het bestand wil opslaan. Indien er op ja gedrukt wordt, dan moet er opgeslagen worden (de map waarin het opgeslagen moet worden is niet bekend, omdat verschillende gebruikers dit bestand in gebruik zullen nemen op verschillende PC's) Indien er op nee gedrukt wordt, dan wil ik dat de macro verder gaat zonder fout melding.

Ik heb nu wel een msgbox met Yes en No, maar voor beide knoppen geldt dat het vesnter "opslaan als" wordt geopend. Ook ben ik erachter gekomen dat wanneer ik met een nederlandse excel versie werk (thuis) dan zijn de knoppen in het Nederlands, en reageerde de macro niet op vbYes, maar wel op vbJa. De gebruikers hebben vaak een andere taal ingesteld, dus daar zou het niet fout mee moeten gaan.
Kan iemand mij helpen?

gr
P.
 
Een msgbox kun je het beste afvangen in een variabele, zodat je een If..Then..Else kunt doen met de uitkomst. Die kun je, als je de variabele definieert als Boolean behandelen op basis van vbYes en vbNo, of True en False, dat zou allemaal moeten werken.

Handiger, als je verschillende talen tegenkomt, is om de variabel als getal te definiëren. Dan krijgt vbYes de waarde 7, en vbNo de waarde 6. (geloof ik, kan ook andersom zijn...) En getallen zijn doorgaans in elke taal hetzelfde.
 
ik snap deels wat je zegt, maar misschien dat je mij een voorbeelt kan geen, zodat ik het beter snap?
Ik begin nog maar net met VBA, dus ik heb nog wat moeite met het begrijpen van sommige dingen.

Heel erg bedankt
gr
 
Geen probleem:

Ik gebruik bijvoorbeeld dit in Access om te checken of een formulier moet worden geopend:

Code:
    If MsgBox(Msg, vbQuestion + vbYesNo) = vbYes Then
        iBedrijf = Me.Parent.cboBedrijf.Column(0)
        DoCmd.OpenForm "fArtikelen", , , , acAdd, acDialog, "ArtikelID|" & NewData & "|" & iBedrijf
    Else
        Exit Sub
    End If

Hier wordt de msgbox dus gelijk gecontroleerd. De variant met een variabele ziet er zo uit:

Code:
    iCheck = MsgBox(Msg, vbQuestion + vbYesNo)
    If iCheck = 6 Then
        iBedrijf = Me.Parent.cboBedrijf.Column(0)
        DoCmd.OpenForm "fArtikelen", , , , acAdd, acDialog, "ArtikelID|" & NewData & "|" & iBedrijf
    Else
        Exit Sub
    End If
 
Heel erg bedankt.
Ik heb n.a.v. jouw oplossing wat geknutseld met wat ik al had en heb nu het volgende:
intResponse = MsgBox("Wilt u dit bestand opslaan?", vbYesNo)
If intResponse = vbYes Then
fileSaveName = Application.GetSaveAsFilename( _
fileFilter:="Excel Files (*.xls), *.xls")

'If user specified file name, perform Save and display msgbox
If fileSaveName <> False Then
ActiveWorkbook.SaveAs Filename:=fileSaveName, FileFormat:=xlNormal
End If
End If


Misschien is het te veel gevraag, maar zou je mij kunnen uitleggen wat hier eigenlijk staat? Ik wil het namelijk graag leren te begrijpen. Ik heb al een boek gekocht, maar helaas gaat die niet zo ver :(

Bedankt !!!
 
Heel erg bedankt.
Ik heb n.a.v. jouw oplossing wat geknutseld met wat ik al had en heb nu het volgende:
intResponse = MsgBox("Wilt u dit bestand opslaan?", vbYesNo)
If intResponse = vbYes Then
fileSaveName = Application.GetSaveAsFilename( _
fileFilter:="Excel Files (*.xls), *.xls")

'If user specified file name, perform Save and display msgbox
If fileSaveName <> False Then
ActiveWorkbook.SaveAs Filename:=fileSaveName, FileFormat:=xlNormal
End If
End If


Misschien is het te veel gevraag, maar zou je mij kunnen uitleggen wat hier eigenlijk staat? Ik wil het namelijk graag leren te begrijpen. Ik heb al een boek gekocht, maar helaas gaat die niet zo ver :(

Bedankt !!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan