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

Kolommen niet strak onder elkaar in Msgbox

Status
Niet open voor verdere reacties.

Cees1951

Gebruiker
Lid geworden
13 nov 2006
Berichten
40
Dag allemaal,
Inj het kader van mijn projectje is er nog een dingetje niet helemaal goed:
in mijn programma worden verschillende acties doorlopen. Elke actie is een status.
Die schrijf ik weg in dat programma onder Range("Historie1"). Daarnaast een Range("Historie2") met daarin het moment waarop de status is gewijzigd (=NOW()).

De bedoeling is dat de gebruiker, door te drukken op een knop, de statussen met hun tijden onder elkaar ziet in een Messagebox ..
Dat heb ik ook gedaan:
Sub MsgboxStatusoverzicht()

Application.ScreenUpdating = False

MsgBox " Statusoverzicht" & vbCrLf _
& Range("V2").Value & " " & Range("W2").Value & vbCrLf _
& Range("V3").Value & " " & Range("W3").Value & vbCrLf _
& Range("V4").Value & " " & Range("W4").Value & vbCrLf _
& Range("V5").Value & " " & Range("W5").Value & vbCrLf _

Application.ScreenUpdating = True

End Sub

Het werkt allemaal wel, maar het probleem is dat de gegevens in de rechterkolom (die met de tijden) niet recht onder elkaar staan. Dat komt natuurlijk omdat de omschrijving van de status in de linkerkolom nu eenmaal niet even lang is.
Nu heb ik wel gebrobeerd elke status omschrijving even lang te maken (met spaties), maar dan NOG staat de tweede kolom niet mooi en strak onder elkaar.

Vraag: kan wat ik wil eigenlijk wel in een Msgbox? Of is iets anders geschikter? En zo ja, wat dan?

Alvast bedankt voor (any) reactie

Groet
 
Doe een regel eens op de volgende manier:

& Range("V2").Value & vbTab & Range("W2").Value
 
idd, wat Ellasar zegt en dan in combinatie wat je zelf al had verzonnen:
maak de meldingen even lang d.m.v. spaties en dan met een tab scheiden van de tijd
(en hopelijk is het effect van gebruikte font dan verwaarloosbaar en gaan de regels verder niet verspringen)

bijvoorbeeld:
Code:
MsgBox Left(Melding1 & "                    ", 30) & vbTab & Tijd1 & vbCrLf & _
        Left(Melding2 & "                    ", 30) & vbTab & Tijd2 & vbCrLf & _
        Left(Melding3 & "                    ", 30) & vbTab & Tijd3 & vbCrLf & _
        Left(Melding4 & "                    ", 30) & vbTab & Tijd4, vbInformation, "Test"
 
Sjonge!
Soms ligt een oplossing dichterbij dan je zou denken: TAB!
Heb de suggestie van Elassar zojuist snel even geprobeerd. Prima. Nu al!
Die van Modbeek zou het nog mooier kunnen maken. Maar dat moet ik ff uittesten.
Ik meld me dus nog.

Maar in ieder geval nu al heel erg bedankt!
 
Nou heren,

Nogmaals zeer bedankt. Ik heb beide suggesties gecombineerd en ben prima tevreden.

Nog even ter afronding voor evt toekomstige lezers:

Sub MsgboxStatusoverzicht()

Application.ScreenUpdating = False

MsgBox " Statusoverzicht" & vbCrLf & _
Left(Range("V2") & " ", 50) & vbTab & Range("W2").Value & vbCrLf & _
Left(Range("V3") & " ", 50) & vbTab & Range("W3").Value & vbCrLf & _
Left(Range("V4") & " ", 50) & vbTab & Range("W4").Value & vbCrLf & _
Left(Range("V5") & " ", 50) & vbTab & Range("W5").Value & vbCrLf & _
Left(Range("V6") & " ", 50) & vbTab & Range("W6").Value & vbCrLf & _
Left(Range("V7") & " ", 50) & vbTab & Range("W7").Value & vbCrLf & _
Left(Range("V8") & " ", 50) & vbTab & Range("W8").Value & vbCrLf & _
Left(Range("V9") & " ", 50) & vbTab & Range("W9").Value & vbCrLf & _
'enzovoorts
& ""

Application.ScreenUpdating = True

End Sub
 
of
Code:
Sub MsgboxStatusoverzicht()
  for j=2 to 9
    c0=c0 & left(cells(j,22) & space(50),50) & vbTab & cells(j,23) & vbCr 
  next
  MsgBox " Statusoverzicht" & vbCr & c0
End Sub
 
Dag snb,
Had mijn vraag al afgesloten, maar door zijn compactheid blinkt deze code van jou uit in schoonheid. Prachtig te zien dat ie precies hetzelfde resultaat geeft, zoals je al schrijft ("of").
Dat wil niet zeggen dat ik snap wat ie doet hoor. Hoe "weet" de code van jou (cells...) eigenlijk waar ie de data vandaan moet halen? En waar slaan die getallen 22 en 23 op? Als ik ze verander, dan loopt de message box in de soep. Dat zie ik wel. Maar waarom?)

Afijn, daarom ben jij senior en ik niet.

Wat me nog wel stoort is dat de message box op jouw manier, maar ook op 'de mijne', niet meer statussen kan laten zien dan 14.
Ga dus maar zoeken in dit forum naar een manier om de box wat uit te rekken.

Bedankt en groet
 
22 is de 22e kolom (V), 23 is de 23e kolom (W).
cells(5,23) is daardoor hetzelfde als Range("V5").
Aangezien ik met een lus werk is het handiger om met cells te werken, omdat daar alleen met cijfers wordt gewerkt om een cel aan te geven.
De messagebox is inderdaad nogal beperkt (ook qua opmaak). Dat is de reden dat ik hem nooit gebruik, maar altijd gebruik maak van userforms.

PS. De nivo-aanduiding op dit forum is een aanduiding van het aantal berichten dat je geplaatst hebt en zegt niets over je kennisnivo.
 
PS. De nivo-aanduiding op dit forum is een aanduiding van het aantal berichten dat je geplaatst hebt en zegt niets over je kennisnivo.

Maar beide zijn wel sterk gecorreleerd ;) Positief gecorreleerd.

Wigi

PS: niveau is zonder o
 
Hallo! Wigi zelf!
Maar jij bent helemaal een senior!
Ja zoiets moest het natuurlijk wel zijn. Computers zijn rationele dingen. Niets magisch aan. Voor 'seniors' dan.
Ik bedoelde gewoon mijn bewondering voor jullie uit te spreken voor het feit dat jullie deze materie zo goed beheersen. Excel is voor mij een middel. Geen doel op zich. Maar al doende zie ik dat de ene code de andere niet is. Sommige codes zijn gewoon haast 'mooi' door hun eenvoud en efficiency. Een soort kunst.
(Voor een 'zweter' als ik dan)
 
Ha,
Ik wist niet dat je nog door kon gaan met een afgesloten onderwerp(?)
Dank snb voor de uitleg.

En zeg je dat ik mag ophouden met het zoeken naar een manier om de msgbox wat uit te rekken zodat de rest van de statussen ook te zien is? (want dat ben ik nu eigenlijk aan het doen..! terwijl ik via OUTLOOK geattendeerd wordt op jullie binnenkomende reacties).

Maar ik weet niets van userforms.. Is het veel gevraagd om mij daarmee dan ook een zetje te geven? Of is dat tegen de Helpmij regels?

(Nivo of niveau. Ik til er niet zo zwaar aan, zolang het begrijpelijk is en niet uitmondt in die verschrikkelijke turbo-nerd-taal wat men ook wel eens tegenkomt)
 
Pfff.. Mijn God.. Wigi. Ik heb even gekeken naar die link en naar dat filmpje: dat is een hele exercitie!!
Zo leer ik er wel van maar dat kost me vele uren als beginner. Is er niet ergens iets snels wat wat ik wil?
 
22 is de 22e kolom (V), 23 is de 23e kolom (W).
cells(5,23) is daardoor hetzelfde als Range("V5").

cells(5,23) is daardoor hetzelfde als Range("W5").

@TS
Ipv cells(j,23) kan je ook gebruik maken van:
- Range("W" & j)
- Cells(j,"W")
Dat is wellicht iets makkelijker leesbaar.

Zoals al eerder opgemerkt zegt de titel Senior, Junior e.d. niets over je niveau. (nivo wordt boven de rivieren ook vaak gebruikt).
We zijn allemaal ooit beginner geweest.

Met vriendelijke groet,


Roncancio
 
He dag Ron,

Dank. Wist niet dat je mee las.

Ha! MIjn "nivoeau"! Ik snap nu een beetje hoe men op Helpmij aan zijn titels komt. Op input toch? Wigi heeft gelijk dat het toch wel een beetje correleert. Althans wat mij betreft.

Tuurlijk ben ik een beginner. Op excel gevied dan. En als je het getal achter mijn naam ziet, begrijp je dat ik vermoed dat dat wel zo zal blijven. Maar then again: "als men stopt met leren gaat men dood".
Je zult me op dit forum dan ook nog wel tegenkomen, denk ik.

Groet en tot het volgende ehh "issue"?
 
Excel is een leuk programma, de één gaat daar verder in dan de ander.

Succes ermee en als er vragen zijn dan horen we het wel.

Wigi
 
Voor een eenvoudige introduktie in userforms zie hier
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan