• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

deel van een tekst weergeven in listbox

Status
Niet open voor verdere reacties.

Andre175

Gebruiker
Lid geworden
2 feb 2018
Berichten
351
goedemiddag.

Hoe kan ik een deel van een tekst weergeven in een listbox?

Als volgt, in een tabel staan bestandsnamen met het pad ervoor waar ze opgeslagen zijn. (dit wil ik gaan gebruiken voor het toevoegen van bijlages bij een mail)
Deze Tabel wordt weergegeven in een listbox.
echter zou ik graag zien dat alleen het bestandsnaam met extensie zichtbaar is in de listbox.

Dus in de tabel staat bijvoorbeeld C:\Users\andre\Dropbox\Get Started with Dropbox.pdf
Dan zou in de listbox moeten komen: Get Started with Dropbox.pdf

het kan natuurlijk ook C:\Dropbox\Dropbox.pdf zijn.....
of C:\Users\andre\Dropbox\test\24_10_2019\????\Get Started with Dropbox.pdf

iemand een idee?


Toch maar ff een kaal bestandje erbij


Bekijk bijlage BijlageKiezen.xlsb


André
 
Laatst bewerkt:
Je voorbeeld zonder pad is "Get Started with Dropbox.pdf" en niet "Dropbox.pdf".
Niet echt duidelijk dus wat je nu precies bedoelt.
 
goed gelezen edmoor... bericht #1 aangepast...

Ik wil graag in de listbox alleen de bestandnaam zien, dus zonder het pad.
 
Doe dat stukje eens zo:
Code:
Private Sub UserForm_Initialize()
    tb = [Tbl_Bijlage].Value
    ub = UBound(tb)
    
    For i = 1 To ub
        tb(i, 2) = Split(tb(i, 2), "\")(UBound(Split(tb(i, 2), "\")))
    Next i
    
    With Lib_Bijlage
        .ColumnHeads = False
        .List = tb
        .ColumnCount = [Tbl_Bijlage].CurrentRegion.Columns.Count
        .ColumnWidths = "25;250"
    End With
End Sub
 
super!!!
Ik had al wel een vermoeden dat het iets met "split" zou zijn....
Maar eerlijk gezegd snap ik het hele split gebeuren nog niet echt.
Ik zal eens proberen uit te pluizen hoe dit hier nu in elkaar steekt.
 
Split gaat een foutmelding geven bij lege cellen.

Code:
Private Sub UserForm_Initialize()
  ar = Sheets("Data_Mail").ListObjects(1).DataBodyRange
  For j = 1 To UBound(ar)
    If ar(j, 2) <> "" Then
      x = Split(ar(j, 2), "\")
      c00 = c00 & "|" & x(UBound(x))
    End If
  Next j
  If Len(c00) Then Lib_Bijlage.List = Split(Mid(c00, 2), "|")
End Sub
 
Daar was ik al achter gekomen....
Misschien niet de mooiste oplossing, maar werkt wel.

Code:
    tb = [Tbl_Bijlage].Value
    ub = UBound(tb)
    
   [COLOR="#FF0000"] If Not Sheets("Data_Mail").Range("B8") = "" Then[/COLOR]
    For i = 1 To ub
        tb(i, 2) = Split(tb(i, 2), "\")(UBound(Split(tb(i, 2), "\")))
    Next i
    
    With Lib_Bijlage
        .ColumnHeads = False
        .List = tb
        .ColumnCount = [Tbl_Bijlage].CurrentRegion.Columns.Count
        .ColumnWidths = "25;250"
    End With
    [COLOR="#FF0000"]End If[/COLOR]


Ben nu aan het puzzelen om 1 bijlage weer te verwijderenmet een CommandButon...
Krijg 'm wel uit listbox.... maar nog niet uit de tabel...

morgen maar weer verder.


Bekijk bijlage Adressenlijst_zonder_gegevens.xlsb
 
Laatst bewerkt:
Alle instellingen zijn overbodig. Kan je net zo goed in het ontwerp van jouw formulier opnemen.

Code:
If Sheets("Data_Mail").Range("B8") <> "" Then
 
Hoe bedoel je dit VenA?

Code:
    If Not Sheets("Data_Mail").Range("B8") = "" Then
    tb = [Tbl_Bijlage].Value
    ub = UBound(tb)
 
    For i = 1 To ub
        tb(i, 2) = Split(tb(i, 2), "\")(UBound(Split(tb(i, 2), "\")))
    Next i
    
    With Lib_Bijlage
        .ColumnHeads = False
        .List = tb
        .ColumnCount = [Tbl_Bijlage].CurrentRegion.Columns.Count
        .ColumnWidths = "25;250"
    End With
    End If

zo beter?
 
Laatst bewerkt:
Nee. Het is onzinnig om vaste waarden steeds opnieuw in te stellen.
.ColumnHeads = False Wanneer wordt dit true?
.ColumnCount = [Tbl_Bijlage].CurrentRegion.Columns.Count Doe je hier iets mee?
ColumnWidths = "25;250" Hiermee zet je de breedte van de eerste 2 kolommen vast. Doe je daar verder nog wat mee?

Op de drie vragen kan ik het het antwoord wel geven. Nee; en dus overbodig.
 
nu ik er zo over na denk... idd

Dan lijkt het me ook overbodig om de gekozen bestanden weg te schrijven in de Tabel_bijlage.
De items kunnen (denk ik) ook gewoon direct toegevoegd worden aan de listbox.
Als de mail dan verzonden wordt, de gegevens uit de listbox lezen

Dus met behulp van de functie GetFile aan de listbox toevoegen.
en zoiets voor verzenden van de mail dacht ik

Code:
With OutMail
        .To =  ......
        .CC =  ......
        .BCC =  ......
        .Subject = ......
        .HTMLBody = StrBody & "<br>" & .HTMLBody
        .Attachments.Add LiB_Bijlage.Column(2)
        If Send = True Then
            .Send
        Else
            .Display
        End If


#edit#
mmmm.... zit toch ff anders in elkaar mbt vullen listbox
maar ik puzzel wel ff door
 
Laatst bewerkt:
Die If Send = True Then mag je vervangen door If Send Then
 
Je kan jouw bedenkingen toch testen en er vervolgens achter komen of het wel of niet werkt?
 
Getest en (gedeeltelijk) gelukt.....
Heb nu wel het gehele pad in de listbox staan, maar dat is geen ramp.
Kan de gebruiker iig ook zien waar het bestand staat welke hij gekozen heeft.

Nu de code voor het mailen aan het draaien zien te krijgen, krijg steeds een foutmelding.
Ik stel daar wel een nieuwe vraag voor op dit forum.

Voor alle ontvangen reacties op deze vraag.... bedankt.

André
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan