Gå til innhold

ExcelGuru

Medlemmer
  • Innlegg

    196
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av ExcelGuru

  1. Hei på deg.

    Jeg har laget et helt enkelt ark som har en form som knytter seg til aktivt ark.

    Usikker på hvordan du skal bruke det, men det er en start.

    Du har en listbox med navn på alle faner.

    Klikker du på et navn i listbox, velges dette arket, og tekstboksen knyttes til A-kolonnen i valgt ark.

    Endrer du tekstfeltet i form, redigerer du cella den er knyttet til.

    Bruk scrollbar for å endre cellen tekstfeltet er knyttet til

     

    http://www.excelguru.no/download/1768/

     

    Vennlig hilsen Ketil

  2. Du kan bruke denne formelen

    =INDIREKTE("'" & RAD() & "'!J$100")

     

    Den vil hente verdien fra arket med samme navn som radnummeret som formelen står på. Setter du formelen over på rad 1, hentes info fra '1'!J$100

     

    Dollartegnet foran 100 sørger for at ikke denne verdien endrer seg når du autofyller,

     

    For at Indirekte skal funke, må arkene du refererer til være åpne. Dette kan du sørge for ved å lagre de aktuelle arkene på en egen katalog og velge:

    Alternativer, avansert, Generelt, Ved oppstart, åpne alle filene i C:\.....

    • Liker 1
  3. 'Start gjerne en ny tråd når den forrige er løst :)

     

    'Legg verdiene i en variabel du kan teste på først

     D = txtPcs1 & " " & txtDesc1 & ", " & txtPcs2 & " " & txtDesc2 & ", " & txtPcs3 & " " & txtDesc3 & ", " & ","
     'Sjekk om du finner to kommaer etter hverandre med space i mellom
     a= InStr(1, D, ", ,")
     ' Finner du det, kapper du strengen der du finner den
     If a Then D = Left(D, a - 1)
     'Sjekk også om de to siste tegnene er ", " og fjern dem hvis du finner dem
     If Right(D, 2) = ", " Then D = Left(D, Len(D - 2))
     'Stapp resten i cella
    .Cells((Lastrow + 1), 10) = D
  4. For å få til dette kan du bruke makroen under

    Du kan laste ned eksempelfilen din her

    http://www.excelguru.no/download/1646/

    Makroen tøffer gjennom alle regnearkene bortsett fra Ark1 og plasserer alle unike artikler i A-kolonnen. Bytter du navn på Ark1, må du endre linjen Set Ark = Sheets("Ark1")

     
    Vennlig hilsen Ketil
     
    Sub Transfer()
      Dim s As Double
      Dim a As Integer
      Dim Ark As Worksheet
      Dim R As Range
      
      Set Ark = Sheets("Ark1")
      Set R = Ark.Range("A:A")
      
      For i = 1 To ActiveWorkbook.Worksheets.Count
       If ActiveWorkbook.Worksheets(i).Name <> Ark.Name Then
        With ActiveWorkbook.Worksheets(i)
         x = 1: While .Cells(x, 2) <> ""
          s = .Cells(x, 2)
          a = 0
          On Error Resume Next
          a = Application.WorksheetFunction.Match(s, R, 0)
           If a = 0 Then
           l = l + 1
           Ark.Cells(l, 1) = s
          End If
         x = x + 1: Wend
        End With
       End If
      Next i
    End Sub
    • Liker 1
  5. Hei!

     

    Det er mange veier til Rom. Denne sub'en gjør jobben hvis du bruker ActiveX

     

    Sub SQL()
    Dim Utvalg As String
     
    Dim SQLArk As Worksheet
    Set SQLArk = Worksheets("Ark1")
     
    Dim cnPubs As ADODB.Connection
    Set cnPubs = New ADODB.Connection
     
    Dim strConn As String
    strConn = "PROVIDER=SQLOLEDB;"
    strConn = strConn & "DATA SOURCE=KETIL-RINGVEIEN\LOKAL;INITIAL CATALOG=Vet;"
    strConn = strConn & " INTEGRATED SECURITY=sspi;"
     
    cnPubs.Open strConn
     
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
     
    With rs
        .ActiveConnection = cnPubs
        Utvalg = "Select count(*)"
        Utvalg = Utvalg & " FROM Vet.dbo.Prisliste"
        .Open Utvalg
            
         SQLArk.Range("A2").CopyFromRecordset rs 
        
        .Close
    End With
     
    End Sub
×
×
  • Opprett ny...