Hej! Kolumner? I vilket sammanhang? Du får gärna beskriva lite mer detaljerat vad du vill försöka göra... Det är ju lätt! Hej! Hur går det till när du plockar värden och för över dom från A B o C ja det är 3st parallella filer och ej kopplade till någon kod Ok nu ser jag framför mig en DBGrid av något slag som har 4 kolumner. Sannolikt Excel? Om det nu är Excel kan man ange följande formel i D-kolumnen: Ja detta var inte så lätt att förklara för en gröning Tror inte att det skulle vara så särdeles snabbt att loopa igenom så många rader heller. Ett alternativ vore att slå av den autmatiska beräkningen, infoga formlerna, beräkna och göra om formlerna till värden. Något i den här stilen: Jag är sugen på att knåpa ihop en annan lösning. Åsas lösning funkar bra TACK Åsa men visst lite tid tar det.Jämföra kolumner
någon som kan lösa detta?
Värden som finns i kolumn A och återfinns i kolumn B eller kolumn C
skall skrivas i kolumn D
//Lasse Sv: Jämföra kolumner
/JohanSv: Jämföra kolumner
value = getValueFromColumn("A")
if isInColumn("B,C", value) then
writeToColumn("D", value)
end if
Sv:Jämföra kolumner
Håller med om att det var lite kortfattat,
Hämtar från databas vis MS-Qurey 3st filer cirka 50000 rader
värde som finns i A-kolumnen och återfinns i B eller C-kolumnen
skall skrivas i D-kolumnen FINNS I ALLA FILER.Och koden kopplad till en knapp.
svaret nedan från Tom får jag inte att funka,
//LasseSv: Jämföra kolumner
Hur ser koden ut för att komma åt ex. A Kolumnen.
Du skriver filer jobbar du med tre filer parallellt ? Du förklara inte speciellt bra.Sv:Jämföra kolumner
utan importeras från en databas vis MS Query till kolumerna A B och C
kravet är att värden som finns i A kolumnen och återfinns i B elle C kolumnen
skall skrivas i D kolumnen t.ex. "finns i alla kolumner"
//Lasse
Sv: Jämföra kolumner
Kolumnerna A B o C är ifyllda medans kolumn D är tom. Är det möjligtvis ett Excelblad ?
Vad är det för Kontroll du använder som visar dessa kolumner ?
Man måste tydligen "mjölka" fram svaren från dig som den värsta förhörsledare ;-)Sv:Jämföra kolumner
Hur som helst är det enklast att bara tyst vänta tills OP inser att det krävs bättre förklaring...Sv: Jämföra kolumner
Om talet måste förekomma på samma rad:
=OM(ANTAL.OM($B1:$C1;$A1)>0;"Finns i alla kolumner";"")
Om talet får förekomma på vilken rad som helst:
=OM(ANTAL.OM($B:$C;$A1)>0;"Finns i alla kolumner";"")
Sv:Jämföra kolumner
men Åsa lyckades gissa rätt Excel är vad som gäller
ja denna formel funkar men 50 till 60000 rader blir ju så segt att uppdatera
så en kod i vb som löser detta vore kalas.
//LasseSv: Jämföra kolumner
Sub CheckFiles()
Dim sht As Worksheet
Dim rng As Range
On Error GoTo CheckFiles_Err
' Stänger av automatisk beräkning och visar timglas
With Application
.Calculation = xlCalculationManual
.Cursor = xlDefault
End With
' Skapar ett Range-objekt som motsvarar de celler i D-kolumnen
' som ska ta emot resultat.
Set sht = ActiveWorkbook.Worksheets(1)
With sht.Range("A1").CurrentRegion
Set rng = .Offset(0, 3).Resize(.Rows.Count, 1)
End With
' Infogar formlerna
With sht.Range("D1")
.FormulaLocal = "=OM(ANTAL.OM($B:$C;$A1)>0;""Finns i alla kolumner"";"""")"
.AutoFill rng, xlFillDefault
End With
' Beräknar och gör om formlerna till värden med kopiera och klistra
sht.Calculate
rng.Copy
rng.PasteSpecial xlPasteValues
' Kopierar en cell för att undvika meddelandet om stor mängd i urklipp
' när Excel avslutas
sht.Range("A1").Copy
' Slår på automatisk beräkning igen
Application.Calculation = xlCalculationAutomatic
CheckFiles_End:
Application.Cursor = xlDefault
Set rng = Nothing
Set sht = Nothing
Exit Sub
CheckFiles_Err:
MsgBox Err.Description
GoTo CheckFiles_End
End Sub
Sv:Jämföra kolumner
Då måste du berätta hur dom tre .txtfilerna ser ut.
Är det ex en textfil med ~50 000 rader efter varandra,
eller är det en enda lång sträng med seperations tecken mellan ?
Förmodar att det är siffror eller ?Sv: Jämföra kolumner
det är ca 50000 rader efter varandra ser ut på följande vis 111-11111-11
//Lasse