Avatar billede jean01ad Praktikant
24. april 2007 - 17:30 Der er 5 kommentarer og
2 løsninger

Fjerne fejl meddelelsen #I/T ved hjælp af VBA

Jeg har et regneark, som konstant vil få værdier i tabeller der ligge i forskellige faneblade, men har en fast tabelramme mellem "G3:R416".

Problemet er, at de værdier som ligges i tabellerne hentes ved hjælp af nogle Lopslag. Den tabel hvorfra opslagene hentes, har ikke alle værdierne som der slåes op på, og således vil der altid opstå fejlmeddelsen #I/T.

Jeg kan dog ikke leve med, at fejlmeddelsen eksisterer, idet den ødelægger subtotaler, som skal ligges med over i et ERP system. Jeg kunne derfor rigtig godt tænke mig en funktion, som fjerne alle #I/T i tabellen "G3:R416" og erstatter dem med enten Blank "" eller "0".

Jo hurtigere svar des bedre og på forhånd tak
Avatar billede bak Forsker
24. april 2007 - 17:38 #1
stil dig påarket og kør denne makro

Sub RemoveErrs()
Dim c As Range

For Each c In Range("G3:R416")
    If IsError(c) Then c.Value = 0
Next
End Sub
Avatar billede tobler Nybegynder
24. april 2007 - 21:37 #2
Er det ikke bedre at checke vedå opslaget om værdien du henter er uden fejl, jeg går ud fra at opslagene som ligger i området g3:r416 skal bruges igen.
=HVIS(ER.FEJL(LOPSLAG(g3;$F$1:$G$8;2;FALSK));0;LOPSLAG(g3;$F$1:$G$8;2;FALSK))
Avatar billede jean01ad Praktikant
25. april 2007 - 08:19 #3
Hejsa...

Ja, det virker jo rimelig enkelt, når man ved hvad der skrives :-) Jeg er super taknemmelig for svaret bak, det virker efter hensigten.

Tobler, tak for dit bud også. Du kunne have haft en meget reel pointe, men da jeg faktisk går ind og fjerne alle formler alligevel (grundet dataens indlæggelse i ERP), så er det faktisk ikke nødvendigt at bruge formlerne igen. Men tak alligevel, jeg har ikke tidligere brugt funktionen "ER.FEJL", men den kan nok blive anvendelig senere.

Jeg er en glad mand :-)

Hvad angår point, så har jeg ikke anvendt sinden anden en gang tidligere, og der var kun en der svarede. Giver man point for gode pointer - eller kun for det svar der bliver anvendt? En fordeling kunne måske være 80/20 Bak/Tobler - hvordan lyder det? Jeg ved heller ikke rigtig hvordan jeg skal give jer point...men det bliver jeg måske promtet for automatisk?
Avatar billede tobler Nybegynder
25. april 2007 - 08:42 #4
Du kan først gi' os point, når vi har lagt et svar. Normalt bli'r alle løsningsforslag leveret som kommentarer, indtil spørgeren be'r om et svar. Når bak også har lagt et svar, kan acceptere svarene og fordele points.
Avatar billede jean01ad Praktikant
25. april 2007 - 08:51 #5
Modtaget - jeg giver point, når bak har lagt svar.

Tak igen
Avatar billede bak Forsker
25. april 2007 - 11:43 #6
Her er et svar og en smule mere kode.
Når jeg har oprettet en samling formler i et regneark og ønsker at koble en fejlfager på dem alle, markerer jeg dem og kører jeg gerne denne makro, der automatisk laver formlen om til en formel som Toblers...

Sub ErrorTrapAdd()
    Dim myStr As String
    Dim cel As Range
    For Each cel In Selection
        If cel.HasFormula = True Then
            If Not cel.Formula Like "=IF(ISERROR*" Then
                myStr = Right(cel.Formula, Len(cel.Formula) - 1)
                cel.Value = "=IF(ISERROR(" & myStr & "),""""," & myStr & ")"
            End If
        End If
    Next
End Sub
Avatar billede tobler Nybegynder
25. april 2007 - 12:08 #7
---> bak, den er smart! Den idé bli'r straks kopieret;-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester