Ga naar inhoud

bakerman

Lid
  • Items

    381
  • Registratiedatum

  • Laatst bezocht

Berichten die geplaatst zijn door bakerman

  1. Sub Kopieren_Dagen()
    '
    ' Kopieren_Dagen
    '
    
    '
        Dim wkDay(1 To 5) As String
        Dim m As Integer, i As Integer, dt As Date
        dt = Now()
        m = Weekday(dt, vbMonday) - 1
        For i = 1 To 5
            wkDay(i) = Format(dt - m, "yyyy_dd_mm"): m = m - 1
        Next i
        myarr = Array("", 1, 2, 3, 4)
        Blad1.Columns("F:G").EntireColumn.Hidden = True
        For i = 1 To 5
            Blad1.Range("C2") = myarr(i - 1)
            ActiveWorkbook.SaveCopyAs "D:\" & wkDay(i) & ".xlsm"
        Next
        Blad1.Columns("F:G").EntireColumn.Hidden = False
    End Sub

     

    Gooi bovenstaande er eens tegen. Deze maakt de datums van de huidige week aan, van maandag tot vrijdag.

  2. Het werkblad is volledig beveiligd. Enkel de cellen J4, J5 en de Combobox kunnen gewijzigd worden.

    Al de berekeningen gebeuren met formules en de kleurbalken en pijltje gebeurt met Voorwaardelijke Opmaak.

    Momenteel staat er geen wachtwoord op de beveiliging dus wil je extra zeker zijn kan je dit alsnog doen.

  3. Met een streepje VBA is het mogelijk. Nadeel is dat je daadwerkelijk iets moet invullen in elke cel alvorens je kan verdergaan.

     

    Private Sub Worksheet_Change(ByVal Target As Range)
     
      Dim TabOrder As String
      TabOrder = "C2,E4,G2,C4,E2,C6"
      TabOrder = "," & Replace(Replace(TabOrder & "," & Split(TabOrder, ",")(0), "$", ""), " ", "")
      If InStr(TabOrder, "," & Target.Address(0, 0) & ",") Then
        Range(Split(Split(TabOrder, "," & Target.Address(0, 0) & ",")(1), ",")(0)).Select
      End If
     
    End Sub

     

    De volgorde kan je wijzigen in TabOrder.

    test volgorde niet beveiligde cellen.xlsm

  4. De formule op het werkblad evalueert enkel 1 cel. Achter de schermen evalueert UitgebreidFilter de formule voor elke cel

     

    in kolom A (of een andere kolom naargelang de opstelling van de formule). Dus naargelang hoe de formule is opgesteld wordt er gefilterd op Waar of Onwaar.

     

    Op deze manier worden alle overeenkomende regels opgehaald en rechts in de resultaattabel geplaatst.

     

    Alles hangt dus af op welke manier je de formule neerpent.

  5. Aangezien de volledige padnaam in je kolom M staat.

     

    Getest en werkend op de indeling van het laatst doorgestuurde bestand.

     

    Sub dotch()
    Dim Cell As Range, Path As String
    With Sheets("Export")
        For Each Cell In .Range("M2:M" & .Cells(.Rows.Count, 13).End(xlUp).Row)
            If Cell.Value <> vbNullString Then
                If Dir(Cell.Value) <> "" Then
                    With .Pictures.Insert(Cell.Value)
                        .ShapeRange.LockAspectRatio = msoFalse
                        .Left = Cell.Offset(, 1).Left: .Top = Cell.Offset(, 1).Top
                        .Width = Cell.Offset(, 1).Width: .Height = Cell.Offset(, 1).Height
                    End With
                End If
            End If
        Next Cell
    End With
    End Sub

     

  6. Heb het getest met een lege cel, bestandsnaam die aanwezig is, bestandsnaam die niet aanwezig is en verschillende extensies.

     

    Werkt feilloos hier.

     

    Zoals de foutmelding al aangeeft schort er iets aan je bestandsnamen. Misschien ongeldige tekens in de bestandsnaam o.i.d..

  7. dj is je blijkbaar vergeten dus spring ik maar even in.

     

    Volgende zou je moeten verder helpen.

     

    Sub dotch()
    Dim Cell As Range, Path As String
    Path = "C:\#[Data]#\Music Collector\Images\"
    With Sheets("Export")
        For Each Cell In .Range("M2:M" & .Cells(.Rows.Count, 13).End(xlUp).Row)
            If Cell.Value <> vbNullString Then
                If Dir(Path & Cell & ".*") <> "" Then
                    ext = CreateObject("scripting.filesystemobject").getextensionname(Dir(Path & Cell & ".*"))
                    With .Pictures.Insert(Path & Cell & "." & ext)
                        .ShapeRange.LockAspectRatio = msoFalse
                        .Left = Cell.Offset(, 1).Left: .Top = Cell.Offset(, 1).Top
                        .Width = Cell.Offset(, 1).Width: .Height = Cell.Offset(, 1).Height
                    End With
                End If
            End If
        Next Cell
    End With
    End Sub

     

  8. Sub Insert_Pict1()
        Dim lRow As Long, lLoop As Long
        Dim sShape As Shape
        Dim myarray As Variant
        With Sheets("Export")
            myarray = Application.Transpose(.Range("M2", .Range("M1048576").End(xlUp)).Value)
            If Not IsArray(myarray) Then MsgBox "Geen bestanden geselecteerd.": Exit Sub
            On Error Resume Next
            lRow = 2
            For lLoop = LBound(myarray) To UBound(myarray)
                Set sShape = .Shapes.AddPicture(myarray(lLoop), msoFalse, msoCTrue, _
                    .Cells(1, 14).Left + 9, .Cells(lRow, 14).Top + 8, 80, 60)
                lRow = lRow + 1
            Next lLoop
        End With
    End Sub

     

  9. 112 keer bekeken en geen gegadigden, dan zal ik de debatten maar openen.

     

    Om te filteren terwijl je typt moet je gebruik maken van een Combobox maar 25000 (of meer) comboboxen op een werkblad lijkt me overkill.

     

    Dus met je gegevensvalidatie lijkt dit me het beste alternatief. Er is wel een stukje VBA voor nodig dus als dit een bezwaar is zit j in de problemen.

     

    Typ het woord (of een deel) dat je zoekt in een cel in kolom B en druk op Enter (of Tab). je Validatielijst is nu gefilterd.

     

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Columns(2)) Is Nothing Then
            If Target.Count > 1 Then Exit Sub
            If Target = vbNullString Then Exit Sub
            sn = Sheet2.Cells(1).CurrentRegion
            With CreateObject("Scripting.Dictionary")
                For j = 1 To UBound(sn)
                    If sn(j, 1) Like "*" & Target.Value & "*" Then .Add sn(j, 1), ""
                Next
                Target.Validation.Delete
                Target.Validation.Add xlValidateList, , , Join(.keys, ",")
                Target.Validation.ShowError = False
            End With
        End If
    End Sub

     

    categorie selectie test.xlsm

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.