23. december 2006 - 21:28
Der er
10 kommentarer og 1 løsning
makro med en popup med ja/nej valg indbygget
Jeg har en makro der skal hente data fra et eksernt ark Da importen automatisk overskriver en masse dat vil jeg gerne være sikker på at importen ikke sker utilsigtet. Derfor kunne jeg godt tænke mig en popup der spørger: Er du sikker på at du vil importere data? JA/NEJ Derefter skal den fortsætte med min makro hvis jeg siger ja og stoppe helt op hvis man siger nej
Annonceindlæg fra Computerworld
23. december 2006 - 21:50
#1
Dim Svar Svar = MsgBox("Vil du fortsætte", vbYesNo) If Svar = 6 Then '6 = Ja 'den kode du vil afvikle Else Exit Function End If
23. december 2006 - 21:51
#2
Indsæt ovenstående lige inden koden eksekveres.
23. december 2006 - 21:53
#3
"Exit Function" skal ændres til "Exit Sub" hvis det er en makro....
23. december 2006 - 21:56
#4
Nedenstående er måske mere logisk Dim Svar As Boolean Svar = MsgBox("Vil du fortsætte", vbYesNo) If Svar = True Then 'den kode du vil afvikle Else Exit Sub End If
23. december 2006 - 22:19
#5
Det virker ikke rigtigt Den vise godt nok spørgsmålet om man vil fortsætte men uanset om jeg siger ja eller nej så fortsætter den med min makro. Kan du se hvorfor? Sub Import() ' Makro indspillet 05-12-2006 af ZZ ' ' Dim Svar As Boolean Svar = MsgBox("Vil du fortsætte", vbYesNo) If Svar = True Then 'den kode du vil afvikle Application.ScreenUpdating = False Worksheets("Faxe").Activate Range("A2:H999").Select Selection.ClearContents Selection.QueryTable.Delete With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\regnskab.txt", _ Destination:=Range("A3")) .Name = "regnskab_1" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlOverwriteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 850 .TextFileStartRow = 1 .TextFileParseType = xlFixedWidth .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 2, 1, 1, 1, 1, 1, 1) .TextFileFixedColumnWidths = Array(5, 3, 45, 15, 15, 15, 15) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False Application.ScreenUpdating = True End With Else Exit Sub End If End Sub
23. december 2006 - 22:26
#6
du har ret, det virker ikke - brug den første løsning med 6-tallet
23. december 2006 - 22:27
#7
Sub Import() ' Makro indspillet 05-12-2006 af ZZ ' ' Dim Svar Svar = MsgBox("Vil du fortsætte", vbYesNo) If Svar = 6 Then 'den kode du vil afvikle Application.ScreenUpdating = False Worksheets("Faxe").Activate Range("A2:H999").Select Selection.ClearContents Selection.QueryTable.Delete With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\regnskab.txt", _ Destination:=Range("A3")) .Name = "regnskab_1" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlOverwriteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 850 .TextFileStartRow = 1 .TextFileParseType = xlFixedWidth .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 2, 1, 1, 1, 1, 1, 1) .TextFileFixedColumnWidths = Array(5, 3, 45, 15, 15, 15, 15) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False Application.ScreenUpdating = True End With Else Exit Sub End If End Sub
23. december 2006 - 22:42
#8
Yes, det virker perfekt Smider du lige et svar? Så lige et tillægsspørgsmål. Kan man lave tvunget linieskift i den tekst der kommer frem? Jeg havde tænkt mig at der skal stå følgende tekst: Du har valgt at starte import af data. Er du sikker på at du vil fortsætte? Importen vil overskrive alle tidligere indlæste tal! Det ville være rart med et linieskift midtvejs så boksen ikke bliver så bred
23. december 2006 - 22:44
#9
"Du har valgt at starte import af data. Er du sikker på at du vil fortsætte?" & vbcr & "Importen vil overskrive alle tidligere indlæste tal!"
23. december 2006 - 22:49
#10
Alt for godt Tusind tak
23. december 2006 - 22:50
#11
Velbekomme :D
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig