[VBA]Beginners vraagje

Pagina: 1
Acties:
  • 58 views sinds 30-01-2008

  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Ik zit al een hele tijd te stoeien met de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub CommandButton1_Click()
Dim intRow As Integer
Dim i As Single
Dim strBlad As String
Dim strCell As String
Dim intWaarde As Integer
Dim strPart As String
  
Do Until strBlad = ""
        intRow = intRow + 1
        strBlad = Worksheets("blad1").Range("K" & intRow)
        strCell = Worksheets("blad1").Range("L" & intRow)
        strPart = Worksheets("blad1").Range("M" & intRow)
        intWaarde = Worksheets(strBlad).Range(strCell).Value
    If intWaarde > 0 Then
        ListBox1.AddItem (strPart)
    End If
Loop
   MsgBox ("Klaar!")
End Sub


Deze code zoekt de waarden van een aantal cellen en doet daar vervolgens iets mee.
Nu probeer ik de loop zo te maken dat hij stopt als er niets meer in de aangegeven cellen staat.

Dit dacht ik te doen door do until te gebruiken en dan daarvan aan te geven dat er niets in staat: ""
Maar nu loopt hij meteen door naar het einde en krijg ik zonder dat er iets gedaan is meteen de msgbox te zien.

Ik heb geen idee waar de grote fout zit.

Kan iemand me misschien een tip geven?

Alvast bedankt voor de reacties! :)

[ Voor 4% gewijzigd door Sanity11 op 11-12-2006 15:06 ]

www.diovisuals.co,


Verwijderd

strblad is initieel leeg....

introw is ook niet gedefinieerd

[ Voor 57% gewijzigd door Verwijderd op 11-12-2006 15:11 ]


  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Verwijderd schreef op maandag 11 december 2006 @ 15:11:
strblad is initieel leeg....

introw is ook niet gedefinieerd
code:
1
2
intRow = 0
strBlad = "A1"


Ik had al geprobeerd dit boven de loop te zetten.
maar dan krijg ik een foutmelding op de volgende regel:
code:
1
intWaarde = Worksheets(strBlad).Range(strCell).Value


:?

[ Voor 10% gewijzigd door Sanity11 op 11-12-2006 15:21 ]

www.diovisuals.co,


  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Ik denk dat ik het heb opgelost!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub CommandButton1_Click()
Dim intRow As Integer
Dim i As Single
Dim strBlad As String
Dim strCell As String
Dim intWaarde As Integer
Dim strPart As String

intRow = 0
strBlad = "A1"
 
Do Until strBlad = ""
        intRow = intRow + 1
        strBlad = Worksheets("blad1").Range("K" & intRow).Value
        strCell = Worksheets("blad1").Range("L" & intRow).Value
        strPart = Worksheets("blad1").Range("M" & intRow).Value
        
    If strBlad = "" Then
    MsgBox ("Klaar")
    Else
        intWaarde = Worksheets(strBlad).Range(strCell).Value
    End If
    If intWaarde > 0 Then
        ListBox1.AddItem (strPart)
    End If
Loop

End Sub


:)

www.diovisuals.co,


  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Waarom gebruik je .Value?

Als je een keer een rare inhoud in je veld hebt staan die niet klopt, klapt je macro eruit, of de nieuwe inhoud klopt niet. Als je .Formula neemt pakt deze de inhoud zoals ie is, zonder dat er een berekening op los wordt gelaten. Als je in een veld hebt staan: 12/3 wordt de .Value dus 4, en met .Formula blijft dit netjes 12/3.

Ben hiermee diverse keren flink nat gegaan trouwens, met uitvoeren van eigen macro's op excel bestanden waar adressen in stonden van klanten. Huisnummer 12, 3 hoog willen ze wel eens als 12/3 zetten. Dan wil je dus niet dat iemand ineens op nummer 4 woont :P

Ey!! Macarena \o/


  • Sanity11
  • Registratie: Januari 2004
  • Niet online
RaZ schreef op maandag 11 december 2006 @ 15:45:
Waarom gebruik je .Value?

Als je een keer een rare inhoud in je veld hebt staan die niet klopt, klapt je macro eruit, of de nieuwe inhoud klopt niet. Als je .Formula neemt pakt deze de inhoud zoals ie is, zonder dat er een berekening op los wordt gelaten. Als je in een veld hebt staan: 12/3 wordt de .Value dus 4, en met .Formula blijft dit netjes 12/3.

Ben hiermee diverse keren flink nat gegaan trouwens, met uitvoeren van eigen macro's op excel bestanden waar adressen in stonden van klanten. Huisnummer 12, 3 hoog willen ze wel eens als 12/3 zetten. Dan wil je dus niet dat iemand ineens op nummer 4 woont :P
Hehe das lullig ja!

Bedankt voor de tip!
Ik ga het meteen ff aanpassen.

www.diovisuals.co,


  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Ik snap niet hoe ik nu die user form kan afspelen zonder de editor naar voren te halen?
Ik heb gewoon in het bestand waar de macro nodig is een userform gemaakt met de nodige code.
Maar ik kan hem alleen gebruiken via de Visual basic editor.

Als ik een macro opneem komt ie mooi in het schermpje macro te staan.
Hoe kan ik deze daar krijgen?

www.diovisuals.co,


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:27
VBA hoort niet thuis in PRG, maar in Office - systemen, aangezien VBA toch meestal office-specifiek is.
-> OFF

https://fgheysels.github.io/


  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 14:02

Reinier

\o/

Sanity11 schreef op dinsdag 12 december 2006 @ 08:48:
Ik snap niet hoe ik nu die user form kan afspelen zonder de editor naar voren te halen?
Ik heb gewoon in het bestand waar de macro nodig is een userform gemaakt met de nodige code.
Maar ik kan hem alleen gebruiken via de Visual basic editor.

Als ik een macro opneem komt ie mooi in het schermpje macro te staan.
Hoe kan ik deze daar krijgen?
Je sub is nu private dus niet zichtbaar.

  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Ah, tks.

Ik heb nu in de module gezet:

code:
1
2
3
Sub VCS()
           UserForm1.show
End sub


En nu kan ik hem wel gewoon aan :)

www.diovisuals.co,


  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Hmmm. . .nou zit ik hier weer te klooien!

Ik wil een bestand openen, daaruit een aantal cellen selecteren en die weer kopieren op een bepaalde lokatie in het andere excel bestand.

code:
1
2
3
4
5
6
7
Private Sub CommandButton3_Click()
      Application.Dialogs(xlDialogOpen).Show
      Range("A2:J200").Select
      Selection.Copy
      Workbooks("Hindernissen051206.xls").Worksheets("BOM").Range("A2").Select
      Selection.Paste
End Sub


Loopt hij telkens vast bij de regel die begint met workbooks?!

Weet iemand wat het probleem zou kunnen zijn?

www.diovisuals.co,


  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 14:02

Reinier

\o/

Waarom begin je met:

Visual Basic:
1
Application.Dialogs(xlDialogOpen).Show

Heb je deze macro opgenomen?

Wacht, je zegt inderdaad dat je een file wilt openen ;)

Maar je opent vervolgens niks, toch?

Wert zoiets niet:

Visual Basic:
1
2
3
4
5
Workbooks.Open Filename:="kaas.xls"
Range("C9:D14").Select
Selection.Copy
Windows("Hindernissen051206.xls").Activate
ActiveSheet.Paste


Of zoiets ;)

[ Voor 109% gewijzigd door Reinier op 12-12-2006 13:50 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

ik dacht je titel te gaan wijzigen, omdat [vba] beginnersvraagje niet zoveel zegt, maar naar lezing vanje topic blijkt dat niet zo makkelijk.

Graag een onderwerp per topic voordat het Sanity11's grote kleine vba-vraagjes topic wordt. :)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1

Dit topic is gesloten.