27. marts 2014 - 13:11Der er
4 kommentarer og 1 løsning
(Måske) import af data
Jeg har et regneark med 2 sheets på.
Et rådata-sheet (RDS) og et hoved-sheet (MAIN).
På RDS har jeg en liste med varenavne og links til nogle dokumenter der hører til det pågældende varenavn.
På MAIN har jeg en dropdown liste, hvor meningen er at jeg kan vælge et varenavn, trykke søg, og så vil en macro/vba/noget, lede i RDS på det pågældende varenavn, om der er links eller ej, og i såfald liste linksne op i MAIN under dropdownlisten. Hvis der derimod ikke er noget data at hente, skal den bare sige "ingen data".
Jeg har prøvet at rode rundt med det, men kan simpelthen ikke få den til noget som helst.
Er der nogen der kan give mig en hjælpende hånd her?
Indsat under arket MAIN Const fraRDSkol = "C" Const tilRDSkol = "Q"
Public vareNavn As String
Dim kol As String, cc, vnr1 As String Private Sub Worksheet_Activate() vnr1 = ""
With ComboBox1 .Clear
Rem Indsæt VareNavne fra RDS For Each cc In Sheets("RDS").Range(fraRDSkol & "1" & ":" & tilRDSkol & "1").Cells vareNavn = cc.Text .AddItem vareNavn
If vnr1 = "" Then vnr1 = cc End If Next cc
.Text = vnr1 End With End Sub Public Function hentFraRDSKol() hentFraRDSKol = fraRDSkol End Function Public Function hentTilRDSKol() hentTilRDSKol = tilRDSkol End Function
Indsat under Module1 Const infoRækStart = 6 Dim ræk As Integer, vNavn As String Dim cc, fra As String, til As String Dim antalRæk As Integer Sub Button7_Click() sletTidligereInfo
vNavn = Sheets("main").ComboBox1 fra = Sheets("MAIN").hentFraRDSKol til = Sheets("MAIN").hentTilRDSKol
For Each cc In Sheets("RDS").Range(fra & "1" & ":" & til & "1").Cells If cc = vNavn Then søgKryds cc Exit Sub End If Next cc
ingenData End Sub Private Sub søgKryds(cc) Dim ræk As Integer, kol As Integer, infoRæk As Integer kol = cc.Column infoRæk = infoRækStart
For ræk = 2 To 32000 If Sheets("RDS").Range("B" & ræk) <> "" Then If Sheets("RDS").Cells(ræk, kol) = "x" Then Sheets("RDS").Range("B" & ræk).Copy Sheets("MAIN").Range("C" & infoRæk).Select Sheets("MAIN").Paste Application.CutCopyMode = False
infoRæk = infoRæk + 1 End If Else Exit For End If Next ræk
If infoRæk = infoRækStart Then ingenData End If End Sub Private Sub ingenData() Sheets("MAIN").Range("C6") = "ingen data" End Sub Private Sub sletTidligereInfo() Dim ræk As Integer For ræk = infoRækStart To 32000 If Range("C" & ræk) <> "" Then Range("C" & ræk).ClearContents Else Exit Sub End If Next ræk End Sub
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.