deaktivert443556 Skrevet 21. februar 2007 Del Skrevet 21. februar 2007 Jeg holder på med å lage en macro som først åpner "annenfil.xls" dersom denne ikke allerede er åpen. Når annenfil.xls allerede er åpen, da fungerer macroen perfekt, men hvis macroen først må åpne denne filen, da stopper den opp etterpå. Det skjer med andre ord ingenting etter at annenfil.xls er åpnet. Det som virkelig får meg til å rive håret ut av hodet, er at sistnevnte bug kun inntreffer når jeg kjører macroen fra en hurtigtast. Trykker jeg Alt+F8 og kjører macroen derfra, da fungerer den, samme hvis jeg lager en knapp, men bruker jeg den tilegnede hurtigtasten, da blir det altså krøll. Hurtigtasten fungerer jo, men den gjør noe rart med macroen. Er dette et kjent problem? Jeg slenger med koden også. Sikkert et amatørmessig preg her, men den fungerer greit. Sub blabla() Application.ScreenUpdating = False Variabel = InputBox("tekst", "tittel") On Error Resume Next Windows("annenfil.xls").Activate If Not Err = 0 Then Workbooks.Open Filename:="C:\annenfil.xls" End If With Range("g2:g200") Set c = .Find(Variabel, LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address c.Offset(0, -6).Range("A1:f1").Copy ActiveWindow.ActivateNext ActiveCell.Offset(0, -6).Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False End If ActiveCell.Offset(0, 6) = Variabel ActiveCell.Offset(1, 6).Select End With End Sub Og under ThisWorkbook har jeg... Private Sub workbook_open() Application.OnKey "+^{A}", "blabla" End Sub Lenke til kommentar
Harald Staff Skrevet 21. februar 2007 Del Skrevet 21. februar 2007 Ja jeg skjønner at frisyren din står i fare nå. Kode kjørt med OnKey-hurtigtaster stanser og nullstiller seg ved workbooks.open. Det er et sted mellom uheldig design og en bug. Du kommer rundt det ved å kalle en ekstern prosedyre. Merk at jeg har deklarert noe over første makro -og forøvrig deklarert resten. '********* øverst************ Option Explicit Dim Variabel As String Dim oTarget As Worksheet Sub blabla() Dim C As Range Dim firstAddress As String Dim OBk As Workbook Dim oSource As Worksheet Dim cTarget As Range Set oTarget = ActiveSheet Set cTarget = ActiveCell If Variabel = "" Then Variabel = InputBox("tekst", "tittel") If Variabel = "" Then Exit Sub End If On Error Resume Next Set OBk = Workbooks("annenfil.xls") If OBk Is Nothing Then Application.OnTime Now, "OpenIt" Exit Sub End If Set oSource = OBk.Sheets(1) oTarget.Parent.Activate DoEvents With oSource.Range("g2:g200") Set C = .Find(Variabel, LookIn:=xlValues) If Not C Is Nothing Then firstAddress = C.Address C.Offset(0, -6).Range("A1:f1").Copy cTarget.Offset(0, -6).Range("A1") Application.CutCopyMode = False End If cTarget.Value = Variabel cTarget.Offset(1, 0).Select Variabel = "" End With End Sub Private Sub OpenIt() Workbooks.Open Filename:="C:\temp\annenfil.xls" DoEvents oTarget.Parent.Activate Call blabla End Sub '********* slutt************ HTH. Beste hilsen Harald Lenke til kommentar
deaktivert443556 Skrevet 21. februar 2007 Forfatter Del Skrevet 21. februar 2007 Det er helt utrolig hva du får til... Takk så mye! Lenke til kommentar
Harald Staff Skrevet 21. februar 2007 Del Skrevet 21. februar 2007 Bare hyggelig det vet du. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå