Anders Hole
-
Innlegg
16 -
Ble med
-
Besøkte siden sist
Innholdstype
Profiler
Forum
Hendelser
Blogger
Om forumet
Innlegg skrevet av Anders Hole
-
-
Takk for hjelpen Anders
Men jeg får opp en feilmld på linje:
testNumber = selectRange.Cells(Counter, 1).Value
Run-time error 13
Type missmatch.
Har satt inn
on error resume next
Men da blir alle "svarene" 0
Hilsen
Torbjørn
Har du noe tekst i disse cellene(range)? Prøv å formater cellene til tall i workbook. Den skal funke fint. Kjør en test isnumeric, og prøve å konverter til tall om du fremdeles får problemer.
-
Anbefaler å bruke en ferdig sorteringsalgoritme(biblioteksfunksjon)
Du må i minste fall gjøre noe slikt:
Private Sub CommandButton2_Click() Dim selectRange Dim selectRange_rows As Integer, Counter As Integer, testNumber As Integer Dim resultArray(3) As Integer resultArray(0) = 0 resultArray(1) = 0 resultArray(2) = 0 Set selectRange = Range("K5:K21") selectRange_rows = selectRange.Rows.Count For Counter = 1 To selectRange.Rows.Count testNumber = selectRange.Cells(Counter, 1).Value If testNumber > resultArray(0) Then resultArray(2) = resultArray(1) resultArray(1) = resultArray(0) resultArray(0) = testNumber ElseIf testNumber > resultArray(1) Then resultArray(2) = resultArray(1) resultArray(1) = testNumber ElseIf testNumber > resultArray(2) Then resultArray(2) = testNumber End If Next MsgBox ("nr 1: " & resultArray(0) & "nr 2: " & resultArray(1) & "nr3: " & resultArray(2)) End Sub
Hei. igjen..
jeg kan ikke vba så godt at jeg klarer og lage en kode for dette selv.
Men sånn jeg ser det for meg blir det noe sånt som dette
Dim x As Integer Dim x2 As Integer Dim x3 As Integer With Range("g3:g8") 'for x = det største tallet mellom 1 og 100 'for x2 = det nest største tallet mellom 1 og 100 'for x3 = det tredjestørste tallet mellom 1 og 100 'nxt x3 'Next x2 'next x 'range("a1") = en kolonne til venstre for x 'range("b1") = x 'range("c1") = en kolonne til høyre for x
hvis jeg er på riktig spor i det hele tatt, er det noen som kan "oversette" dette til kode?
Hilsen
Torbjørn
-
Er jo 2 tastetrykk dette..
I Excel, gå på meny Data, Sort, og sorter etter largest number. Øverste 3 verdier i resultatet er de verdiene du er ute etter. Merk alle kolonnene og sorter etter verdi.
Isåfall kan du alltid anta at data er sortert, og at de 3 første radene i kolonnen er også de høyeste verdiene.
-
Lag en 2 dimensjonell tabell som inneholder index til butikk(tall), og salgsresultat(tall). Sorter denne via en standard biblioteksfunksjon, på salgsresultat, tror disse heter bubble o.l.[kolonne2] Søk i google etter Sorting Array vba. Da vil de 3 første indeksene i tabellen inneholde høyeste verdier.
Men du må også ha en oversikt over indekser til butikker, så du ikke glemmer hvilken indeks hver butikk har.
Men du kan også enkelt lage en macro for sortering, dette har excel innebygd. Under Data, Sort. Du kan da bruke innebygd macro bygger for å gjøre dette på en kolonne. Det vil gi samme resultat.
-
Hei.
Jeg har en kode for legge inn en formel.
ActiveCell.FormulaR1C1 = "=IF(ISERROR(RC[-1]/R19C3*100),"""",RC[-1]/R19C3*100)"
Men jeg lurer på om det går ann og gjøre noe sånt som
x =R19C3 ActiveCell.FormulaR1C1 = "=IF(ISERROR(RC[-1]/x*100),"""",RC[-1]/x*100)"
Hilsen
Torbjørn
Om du tenker på C3:R19 så er svaret ja, dette er mulig med å hente inn range i et array, og kjøre en løkke igjennom alle cellene og legge inn formelen på denne måten.
-
Velding enkelt, i hovedprogrammet opprettes en klasse som inneholder variablene, du skal ta vare på.
Så lager du et array av en range.
Deretter går du igjennom hele arrayet, fra element 0 til max element i range. Eller rad.
Så sender du hvert eneste celleverdi, til klasse funksjonen som akkumelerer antall treff.
Mulig jeg misforstod og at du skulle ha selve index til cellen?
Isåfall kan du glemme klassen også, og bare kjøre switch/select, da vil du kunne skrive
selectRange(counter + 2, 1), som er offset du ønsker.
Men du kan også lagre index til selve elementet i array om du vil. Men da bør du også sende hele array til klassen. Om du forklarer litt mer helt hva du er ute etter så kan jeg lage dette til.
Om dokumentet er alltid likt, template, så kan du også navngi en celle(gi et custom name). Isåfall blir det mye enklere
-
Hvilken database server kjøres? Kan du ikke gå inn i terminalen og se hvilke råverdier som ligger der? Eller har ikke du tilgang?
Det skal være kolonn inne i " ;" så det må være med når du kjører
<?php function erstatt($tekst) { $convert = array("æ" => "æ", "ø" => "ø"); return (strtr($tekst, $convert)); } ?>
http://www.korrekturavdelingen.no/K4SpesialtegnNorskeTegn.htm
-
Private Sub CommandButton1_Click() Dim selectRange Dim selectRange_rows, counter As Integer Dim testcelle As String testcelle = "" Set selectRange = Range("B1:B102") selectRange_rows = selectRange.Rows.Count For counter = 1 To selectRange_rows testcelle = selectRange.Cells(counter, 1).Value If (testcelle = "Oslo") Then selectRange.Cells(counter, 1).Value = "Bergen" 'gjøre noe her 'Beste er å lage en funksjon som kalles og da kan du gjøre hva som helst med ' resultatet i akkurat den cellen du søker gjennom 'du kan også gjøre dette uten å hente range fra worksheet med å bruke cell().Value End If Next End Sub
Høyreklikk Class Modules, og insert -> new Class Module, bruk Class1
Private Sub CommandButton1_Click() Dim selectRange Dim selectRange_rows, counter As Integer Dim testcelle As String Dim newOversikt As Class1 Set newOversikt = New Class1 newOversikt.init testcelle = "" Set selectRange = Range("B1:B102") selectRange_rows = selectRange.Rows.Count For counter = 1 To selectRange_rows testcelle = selectRange.Cells(counter, 1).Value newOversikt.setAntall (testcelle) Next MsgBox (newOversikt.antallKiwii) End Sub Private xSpar, xMeny, xKiwii, xKiwio, xJoker, xUltra, xCentra, xRingen, xAssosierte, x7Assosierte, xtotal As Integer Public Sub init() xSpar = 0 xMeny = 0 xKiwii = 0 xKiwio = 0 xJoker = 0 xUltra = 0 xCentra = 0 xRingen = 0 xAssosierte = 0 x7Assosierte = 0 xtotal = 0 End Sub Public Property Get antallSpar() As Integer antallSpar = xSpar End Property Public Property Get antallMeny() As Integer antallMeny = xMeny End Property Public Property Get antallKiwii() As Integer antallKiwii = xKiwii End Property Public Sub setAntall(temp As String) Select Case temp Case "Spar" xSpar = xSpar + 1 xtotal = xtotal + 1 Case "Meny" xMeny = xMeny + 1 xtotal = xtotal + 1 Case "Kiwii" xKiwii = xKiwii + 1 xtotal = xtotal + 1 Case "Joker" xJoker = xJoker + 1 xtotal = xtotal + 1 Case "Ultra" xUltra = xUltra + 1 xtotal = xtotal Case Else 'do nothing End Select End Sub
-
Private Sub CommandButton1_Click() Dim selectRange Dim selectRange_rows, counter As Integer Dim testcelle As String testcelle = "" Set selectRange = Range("B1:B102") selectRange_rows = selectRange.Rows.Count For counter = 1 To selectRange_rows testcelle = selectRange.Cells(counter, 1).Value If (testcelle = "Oslo") Then selectRange.Cells(counter, 1).Value = "Bergen" 'gjøre noe her 'Beste er å lage en funksjon som kalles og da kan du gjøre hva som helst med ' resultatet i akkurat den cellen du søker gjennom 'du kan også gjøre dette uten å hente range fra worksheet med å bruke cell().Value End If Next End Sub
-
Synes de templatsa de hadde var ikke særlig pene teste wordpress senere idag da =)
Hva er egentlig formålet med siden? Det skal ikke være noe problem for deg å lage en standard side, ved bruk av html5/css på under 4 uker. Men siden du lenker til er vedlikeholdt og laget av flere enn 1 person.
-
Du kan evt lage en return funksjon for form 1, som returnerer den valgte linken til form 2 ved lukking(evt ved trykking på en knapp). Deretter kan du behandle resultatet og legge dette i tekstbox i form 2. Det finnes en del onclose funksjoner som du kan legge til i form1.
Men vet ikke om du ønsker å ha form1 åpent? Du har ikke sett på ulike containere, f.eks? Slik at du slipper å jobbe via mange vinduer.
Evt kan du lage en klasse som håndterer url, med type:
string url_back;
string url_next;
string url_current;
sende en pointer til klassen i form2 og returnere direkte linken til klassen.
Du bruker samme metod for favorites som tidligere, og returnerer bare url til form2 fra favorites om det var dette du ville?
Videre kan du ha en onchange i textboksen som sender url til webleser hver gang den har en gyldig url, dette kan du sjekke via at formatet er www.etellerannet.com/no/org o.l
Men iom at dette er favoritter er sikkert linkene lagret på et allerede godkjent format.
-
Prøv noe sånt:
#include <iostream> #include <vector> using namespace std; class myClass { public: myClass(){} void setReal(bool val) { amIReal = val; } bool getReal(void) { return amIReal; } private: bool amIReal; }; class myClassCollection { public: myClassCollection() { myCollection = new vector<myClass> (10); } void setMyClassReal(int index, bool val) { myCollection->at(index).setReal(val); } bool getMyClassReal(int index) { return myCollection->at(index).getReal(); } private: vector<myClass>* myCollection; }; int main () { vector<myClassCollection> CollectionOfCollections(1); while(true){ CollectionOfCollections.at(0).setMyClassReal(1,true); cout << CollectionOfCollections.at(0).getMyClassReal(1); } return 0; }
Hei, jeg har i det store og hele en lagt større kode som virker noelunde slik som under.
Jeg har en klasse, som er en private vector i en annen klasse.
Poenget er at jeg nå trenger å endre en verdi i den "innerste" klassen, og det gjennom en funksjon.
Tanken er å sende samlingen av samlinger inn via pointer eller reference, hva som enn virker mest
hensiktsmessig (or her er jeg i litt ukjent lende) for så å kunne ha tilgang til, og endre variabler
i den innerste klassen. Tingen er å endre verdiene i den opprinnelige vektoren, og ikke en i kopi som
går out of scope når funksjonen returnerer.
#include <iostream> #include <vector> using namespace std; class myClass { bool amIReal; public: void setReal(bool val) { amIReal = val; } bool getReal(void) { return amIReal; } }; class myClassCollection { vector<myClass> myCollection; public: void setMyClassReal(int index, bool val) { myCollection[index].setReal(newVal); } }; int DoStuff(vector<myClassCollection> *); int main () { vector<myClassCollection> CollectionOfCollections; DoStuff(&CollectionOfCollections); return 0; } int DoStuff(vector<myClassCollection> *inVector) { int first = 3; int second = 1; myClassCollection *accessToChange; //Jeg øsnker å endre "amIReal" accessToChange = &(inVector->at(first)); (*accessToChange).setMyClassReal(second, true); }
Dette er så langt den eneste måten jeg har fått drittet til å kompilere. Problemet er at endringer
gjort via DoStuff ikke er persistente. Endringene blir tydeligvis utført på en kopi som går out of
scope.
Så vidt jeg ser blir denne kopien opprettet ved call til inVector->at() (returnerer en kopi av elementet,
og ikke elementet selv). Men jeg får det ikke til på andre måter og kommer rett og slett ikke på
noen løsninger på problemet ...
Noen ideer, eller løsninger? Helst noe som ikke innebærer å skrive om hele makkverket.
Mvh,
Beej80
- 1
-
Hei.
Jeg har lyst å lage et spill, så er det noen gode bok 3D spillprogrammering ?
Jeg spør fordi jeg vil lære om game engine, inn/utganger, oppdatering fra internett, og slikt.
http://www.amazon.co.uk/Introduction-3D-Game-Programming-Direct/dp/1598220535/ref=pd_bxgy_b_img_b
har hørt litt om denne, ikke lest den selv! Men avhenger jo om du ønsker OpenGl eller Directx?
-
Jeg ville anbefale å brukt HTML koden for selve bokstavene, se hva som skjer da
æ = æ
ø = ø
som en test. Du kan lage en funksjon som erstatter alle tegn med disse verdiene.
Men lag bare en lite snutt i databasen som du kan hente ut
Grattis!
-
Prøv evt å laste inn innlegg som xml fil/xml format fra databasen
med følgende <?xml version="1.0" encoding="UTF-8"?> encoding. Mulig dette kan fungere.
Men om det ikke lagres riktig i databasen er det uansett ikke noe hjelp i dette.
Excel 2007 vba Finne verdier
i Programmering og webutvikling
Skrevet · Endret av Anders Hole
Det er ikke mulig så lenge du initierer med 0, og ikke 5.
Om du har 2 celler med 5 og bruker else if og ikke if, så vil siste være 0.
Private Sub CommandButton1_Click()
Dim selectRange
Dim selectRange_rows As Integer, Counter As Integer, testNumber As Integer
Dim resultArray(3) As Integer
resultArray(0) = 0
resultArray(1) = 0
resultArray(2) = 0
Set selectRange = Range("K5:K21")
selectRange_rows = selectRange.Rows.Count
For Counter = 1 To selectRange.Rows.Count
Dim bool As Boolean
bool = IsNumeric(selectRange.Cells(Counter, 1).Value)
If (bool = True) Then
testNumber = selectRange.Cells(Counter, 1).Value
If testNumber > resultArray(0) Then
resultArray(2) = resultArray(1)
resultArray(1) = resultArray(0)
resultArray(0) = testNumber
ElseIf testNumber > resultArray(1) Then
resultArray(2) = resultArray(1)
resultArray(1) = testNumber
ElseIf testNumber > resultArray(2) Then
resultArray(2) = testNumber
End If
Else
End If
Next
MsgBox ("nr 1: " & resultArray(0) & "nr 2: " & resultArray(1) & "nr3: " & resultArray(2))
End Sub