adres uitvoeren

Status
Niet open voor verdere reacties.

Clint29

Gebruiker
Lid geworden
3 dec 2013
Berichten
10
Hallo,

Ik heb onderstaande code;
- Het Type\End type staat in een Module.

De macro (AdresVoeren) geeft de Uitvoer niet weer, alleen het "-" tussen landcode en postcode
Wat declareer of definieer ik verkeerd?

Code:
Type Tadres

    titel As String
    voornaam As String
    naam As String
    landcode As String * 2
    pcode As String * 6
    straat As String
    telefoon(3) As String
    geslacht As Boolean '0:m, 1:v
    
End Type


Sub Adresinlezen()
    Dim adres As Tadres 'lokale variabele
    titel = "Dhr"
    voornaam = "Clint"
    naam = "Eastwood"
    straat = "Magnum .44"
    landcode = "44"
    pcode = "4444MG"
    woonplaats = "San Francisco"
    
End Sub
Code:
Sub AdresUitvoeren()
    Dim a As Tadres
    Dim Uitvoer As String
    
    'Uit te voeren tekst opbouwen
    Uitvoer = a.titel & Chr(13) & _
                a.voornaam & " " & a.naam & _
                a.straat & _
                a.landcode & "-" & a.pcode
    
    Debug.Print Uitvoer
End Sub
 
Laatst bewerkt door een moderator:
Met Type wordt alleen een type gedeclareerd. In Sub Adresinlezen declareer je de locale variabele adres als Tadres.
De waarden die je hier vult gelden alleen tijdens de looptijd van die Sub, daarna is die waarde weer weg.
Declareer dus adres als Tadres buiten de subs en gebruik dan in de Sub AdresUitvoeren dezelfde variabele (adres)

Als AdresInlezen AdresUitvoeren niet in dezelfde module zitten moet je daar ook geen Dim maar Public voor gebruiken.
Die Public declaratie hoeft in maar 1 module gedaan te worden.
Leesvoer hierover:
http://support.microsoft.com/kb/141693/nl
 
Laatst bewerkt:
AdresInlezen en AdresUitlezen staan allebei in blad1.

Code:
Dim adres As Tadres

Public Sub Adresinlezen()
    'Dim adres As Tadres 'lokale variabele
    titel = "Dhr"
    voornaam = "Clint"
    naam = "Eastwood"
    straat = "Magnum .44"
    landcode = "44"
    pcode = "4444MG"
    woonplaats = "San Francisco"
    
End Sub



Code:
Public Sub AdresUitvoeren()
    Dim adres As String
    Dim a As Tadres
    Dim Uitvoer As String
    
    'Uit te voeren tekst opbouwen
    Uitvoer = a.titel & Chr(13) & _
                a.voornaam & " " & a.naam & _
                a.straat & _
                a.landcode & "-" & a.pcode
    
    Debug.Print Uitvoer
End Sub
 
Laatst bewerkt door een moderator:
In het boek waar dit voorbeeld half uitgewerkt in staat daar staat het Adresuitvoeren statement zoals hieronder;
dus daar staat tussen de haakjes a as Tadres, maar als ik dat doe dan blijft de macro daarop hangen.

Ik heb de link die je gestuurd hebt gelezen maar dat is voor mij "droge stof" ik moet zien wat ik fout doe.

Code:
Sub AdresUitvoeren(a As Tadres)
    Dim adres As String
    Dim a As Tadres
    Dim Uitvoer As String
    
    'Uit te voeren tekst opbouwen
    Uitvoer = a.titel & Chr(13) & _
                a.voornaam & " " & a.naam & _
                a.straat & _
                a.landcode & "-" & a.pcode
    
    Debug.Print Uitvoer
End Sub
 
Laatst bewerkt door een moderator:
"Als AdresInlezen AdresUitvoeren niet in dezelfde module zitten moet je daar ook geen Dim maar Public voor gebruiken.
Die Public declaratie hoeft in maar 1 module gedaan te worden."

In de door jouw hierboven beschreven tips, begrijp ik niet helemaal wat er bij mij dan fout staat. Moeten AdresInlezen en AdresUitvoeren ook in een aangemaakte Module zitten of kunnen die ook samen in blad1 staan?
 
In het boek waar dit voorbeeld half uitgewerkt in staat
Misschien een heel boek kopen?

Code:
Dim adres As Tadres

Public Sub Adresinlezen()
    adres.titel = "Dhr"
    adres.voornaam = "Clint"
    enzovoort    
End Sub

Verkort is dit:

Code:
Public Sub Adresinlezen()
    with adres
        .titel = "Dhr"
        .voornaam = "Clint"
        .enzovoort    
    end with
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan