Ga naar inhoud

bakerman

Lid
  • Items

    378
  • Registratiedatum

  • Laatst bezocht

Berichten die geplaatst zijn door bakerman

  1. Deze in ThisWorkbook module.

     

    Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
        Deelnemerslijst = Sh.Name
    End Sub

     

    En deze in een Standaard module.


     

    Public Deelnemerslijst As String
    
    Sub Test()
        Application.Goto Sheets(Deelnemerslijst).Range("A1")
    End Sub

     

    Experimenteer hiermee maar eens wat, dan kan je het zeker aanpassen aan je noden.

  2. Graag gedaan. Hoe valt de snelheid mee ?

     

    Heb de code nog wat verder aangepast zodat nu eerst de oude resultaten in kolom E gewist worden.

     

    Ook worden nu enkel de resultaten terug naar het werkblad geschreven zodat de rest van je data onaangeroerd blijft.

     

    Sub tst()
        Dim b()
        Set dic = CreateObject("scripting.dictionary")
        sn = Cells(1).CurrentRegion.Value
        ReDim b(1 To UBound(sn) - 1, 1 To 1)
        For i = 2 To UBound(sn)
            x0 = dic.Item(sn(i, 2))
        Next
        For j = 2 To UBound(sn)
            If (sn(j, 1) = 99999) * (dic.exists(sn(j, 3))) Then b(j - 1, 1) = 1
        Next
        lRow = Range("E" & Rows.Count).End(xlUp).Row: If lRow = 1 Then lRow = 2
        Range("E2:E" & lRow).ClearContents
        Cells(2, 5).Resize(UBound(b), 1) = b
    End Sub

     

  3. Vervang dit

     

    Declare Function PlaySound Lib "winmm.dll" _
      Alias "PlaySoundA" (ByVal lpszName As String, _
      ByVal hModule As Long, ByVal dwFlags As Long) As Long

     

    door dit

     

    #If VBA7 Then
        Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
            Alias "PlaySoundA" (ByVal lpszName As String, _
            ByVal hModule As LongPtr, ByVal dwflags As Long) As Long
    #Else
        Private Declare Function PlaySound Lib "winmm.dll" _
            Alias "PlaySoundA" (ByVal lpszName As String, _
            ByVal hModule As Long, ByVal dwflags As Long) As Long
    #End If

     

    en probeer nogmaals.

  4. Sub PrintSelectionToPDF()
        Dim arTmp, shPDF()
        Dim j As Long, i As Long, naam As String
        With Sheets("Blad1")
            arTmp = .Range("C1", .Range("C" & .Rows.Count).End(xlUp)).Resize(, 2): naam = .Range("D1").Value
            ReDim shPDF(1 To Application.CountIf(.Range("D:D"), "Ja") + 1)
        End With
        shPDF(1) = "Blad2": j = 2
        For i = 2 To UBound(arTmp)
            If arTmp(i, 2) = "Ja" Then
                shPDF(j) = arTmp(i, 1): j = j + 1
            End If
        Next i
        Sheets(shPDF).Select
        ActiveSheet.ExportAsFixedFormat 0, "C:\Users\*******\" & naam
        Application.Goto Sheets("Blad1").Range("A1"), True
    End Sub

     

  5. Eentje om te testen.

     

    Sub PrintSelectionToPDF()
        Dim arTmp, shPDF()
        Dim j As Long, i As Long, naam As String
        With Sheets("Blad1")
            arTmp = .Cells(1).CurrentRegion: naam = .Range("B1").Value
            ReDim shPDF(1 To Application.CountIf(.Range("B:B"), "Ja") + 1)
        End With
        shPDF(1) = "Blad2": j = 2
        For i = 2 To UBound(arTmp)
            If arTmp(i, 2) = "Ja" Then
                shPDF(j) = arTmp(i, 1): j = j + 1
            End If
        Next i
        Sheets(shPDF).Select
        ActiveSheet.ExportAsFixedFormat 0, "C:\Users\*******\" & naam
        Application.Goto Sheets("Blad1").Range("A1"), True
    End Sub

     

  6. In de veronderstelling dat P4 een datum is, de Replace funtie om problemen met het pad te vermijden.

    Sub wb()
        With ActiveSheet
            .ExportAsFixedFormat 0, ThisWorkbook.Path & "\Lijsten\Storingslijst " & Replace(.Range("P4"), "/", "_"), , , , , , True
        End With
    End Sub

     

    PS: ".pdf" is niet nodig. De extensie wordt automatisch toegevoegd naargelang het gebruikte argument bij ExportAsFixedFormat.

  7. @bickyvp

     

    Ik zou me eens inlezen over hoe je correct rijen uit een tabel verwijdert.

     

    De huidige manier is niet correct en onvolledig. Er moet minstens steeds een koprij en 1 datarij aanwezig zijn in een tabel.

     

    Je moet dus checken hoeveel rijen er aanwezig zijn in je tabel. Als het er nog maar 1 is verwijder je de rij niet maar verwijder je enkel de

     

    constanten zodat je eventuele formules in de tabel niet verwijdert.

  8. Ik dacht dat deze vraag ging over het wegschrijven van data naar 2 worksheets ?????

     

    Alhoewel het antwoord daarop reeds gegeven is op 20 februari door emiel. zijnde

     

    voer de code 2X uit maar verander de sheetname in de tweede code.

     

    Aangezien jij zoiets simpel niet klaar krijgt moet er volgens mij meer aan de hand zijn en zal je je vraag moeten verduidelijken.

  9. Aangezien er weinig animo is voor deze thread.

     

    Function winsorize(bereik As Range, p As Integer) As Double
        r = Application.CountA(bereik): k = r * (p / 100)
        t = Fix(k): If t <> k Then t2 = Round(1 - (k - t), 2)
        If t2 = 0 Then
            For i = t + 1 To r - t
                X = X + Application.Small(bereik, i)
            Next
        Else
            For i = t + 2 To r - (t + 1)
                X = X + Application.Small(bereik, i)
            Next
            X = X + (t2 * Application.Small(bereik, t + 1)) + (t2 * Application.Small(bereik, r - t))
        End If
        winsorize = (1 / (r - (2 * k))) * X
    End Function

     

    In het werkblad invoeren als

    =winsorize(A1:A10;22)

     

  10. Quote

    Andersom is niet noodzakelijk maar zou wel leuk zijn.

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
        Select Case Sh.Name
            Case "Herinnering"
                Sh.[A2:B10] = Sheets("factuur").[A2:B10].Value
            Case "factuur"
                Sh.[A2:B10] = Sheets("Herinnering").[A2:B10].Value
        End Select
    End Sub

     

  11. Dit zet je misschien op weg.

     

    Getallen in kolom A.

     

    Sub tst()
        For Each cl In Range("a1", Range("A" & Rows.Count).End(xlUp))
            If Left(cl, 1) = Chr(45) Then
                cl.Value = Mid(cl.Value, 2, Len(cl.Value) - 1) & Chr(45)
            End If
        Next
    End Sub

     

×
×
  • 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.