24. april 2007 - 17:30Der 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".
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))
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?
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.
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
---> bak, den er smart! Den idé bli'r straks kopieret;-))
Synes godt om
Ny brugerNybegynder
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.