Just nu i M3-nätverket
Gå till innehåll

Felkod: duplicate declaration in currant scope


Viktor79

Rekommendera Poster

kan det vara ngt i komboboxens properties som ska ändras. Hur är dina properties?

 

Länk till kommentar
Dela på andra webbplatser

Jag testade med en helt ren ComboBox, dvs helt tom. Fyller man på en ComboBox på detta viset är det viktiga att ListFillRange (eller vad den nu kallas) inte är satt till något, då skiter det sig totalt.

 

Så testa skapa en helt ny arbetsbok, skapa några dummy-data och se om det fungerar där.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Det var himla konstigt.

 

Jag gjorde samma sak. En helt ny workbook med en ny userform och kopierade in din kod. Exakt samma fenomen dyker upp. Den tar de första 7 värdena. Ingen sortering alls. Jag kanske har en dålig version av excel!!

 

Upptäckte en annan sak.

 

filtrerar jag denna listan

 

f

f

r

t

y

h

b

b

g

t

r

d

s

e

e

t

g

g

h

j

u

 

får jag den här

 

f

f

r

t

y

h

b

g

d

s

e

j

u

 

de 2 första f filtreras inte

 

Länk till kommentar
Dela på andra webbplatser

Vaf@n, det har ju fungerat för mig fram till NU!!!

Undrar varför...jag har en misstanke... men skit i den och ta denna version istället:

Sub FillList(source As Range, box As ComboBox)
box.Clear
source.AdvancedFilter xlFilterInPlace, , , True
For Each myCell In source.SpecialCells(xlCellTypeVisible).Cells
   box.AddItem myCell.Value
Next myCell
source.Parent.ShowAllData
End Sub

 

Fungerar.

om inte.... skjut mig ;)

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

klackarna i taket!!

 

Poäng till dig.

 

Nu ska jag bara sortera texten i bostavsordning oxo innan jag kastar in den i comboboxen, men det är nog inte så svårt.

 

Länk till kommentar
Dela på andra webbplatser

Inte så svårt, nej. Gör det på bladet. Sortera HELA tabellen, inte bara ena kolumnen., eller kör avancerade filtret så att det kopierar resultatet till en annan plats på bladet och sortera där. Visst går det att göra i koden men det är bara jobbigt och tar tid.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

På bladet?

OK det kan jag göra. Jag tänkte annars köra på ditt snygga koncept.

 

Försökte skriva denna kod i Fillist sub innan filtreringen men gick inte

 

source.Sort Order1:=xlAscending, Header:=xlNo, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

DataOption1:=xlSortNormal

 

Länk till kommentar
Dela på andra webbplatser

Okej, en ny version:

Sub FillList(source As Range, box As ComboBox)

Dim myCell As Range
box.Clear
source.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("tempCell"), Unique:=True
Dim rnRes As Range
Set rnRes = Range("tempcell", Range("tempcell").End(xlDown))
rnRes.Sort Key1:=Range("tempcell"), Order1:=xlAscending, Header:= _
       xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
       DataOption1:=xlSortNormal
For Each myCell In rnRes
box.AddItem myCell.Value
Next myCell
rnRes.Clear
End Sub

Denna kopierar resultatet till en namngiven cell, i detta fallet tempcell, som kan finnas varsomhelst i arbetsboken. Sedan sätts rnRes till det resulterande området. rnRes sorteras därefter och sedan stoppas värdena in i boxen. Till sist måste rnRes tömmas på värden annars skiter sig Advanced filter vi nästa anrop.

 

Ett OBS!

1: har du rubriker på dina kolumner? Följer de med i filtreringen? Header:= _

xlGuess kanske bör ställas om.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Fenomenalt!!

 

Det funkar felfritt.

 

Nästa problem =)

 

Jag ska skriva in värden från olika celler i en textbox och undrar hur jag får den att byta rad. Det går inte med +enter+

 

vet du hur man skriver?

 

Länk till kommentar
Dela på andra webbplatser

Du ska skriva in flera värden i EN textbox? Lite jobbigt..

 

men vill du ha det så så är det två inställningar du vill ändra

MultiLine = True

EnterKeyBehavior = True

 

utan den sista måste du trycka SHIFT + Enter för ny rad, men den bara Enter.

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

OK.

 

Jag skrev in

textbox1.MultiLine = True

textbox1.EnterKeyBehavior = True

i initialize

 

när jag sedan försöker få över texten i textbox skriver jag

 

TextBox3.value = Range("A" & ListBox1.value + 2).value + Enter + Range("B" & ListBox1.value + 2).value

 

det blir dock i textboxen text1text2

 

alltså inte radbyte. Vad är felet jag gör?

 

Länk till kommentar
Dela på andra webbplatser

Ahah, du ska inte mata in för hand. det var det jag tolkade det som.

 

Ny rad i VBA heter, surprise!, vbNewLine.

Testa den.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...