And another puzzel

H

Henrootje

The puzzle: I have two worksheets within one Excelfile.

' NieuwArtikelNr' and ' Hoofdblad' .

Now I want to place in 'Hoofdblad', Column D, first free cell, the
following code;

=MAX(" & NieuwArtikelNr & "!D5:D300;1)

so that in that field it shows the last date in NieuwArtikelNr, Column
D.

Thanks to Don Guillet I have come as far as:

Range("D2").End(xlDown).Offset(1, 0).Formula = "=MAX(" & NieuwArtikelNr
& "!D5:D300;1)"

BUT the = before MAX cannot be placed. If I remove the = it works like
a charm but then it's just plain text, not a formula :s

Any one has any suggestions?

TIA
 
R

Rowan Drummond

If NieuwArtikelNr is the sheet name then you could just use:

Range("D2").End(xlDown).Offset(1, 0).Formula = _
"=MAX(NieuwArtikelNr!D5:D300,1)"

but Don already suggested that in the previous thread. If that does not
work you need to show us how NieuwArtikelNr is being set in your macro.

Regards
Rowan
 
H

Henrootje

Rowan Drummond, Don Guillet,

I have it working! Now I go sleep :p (1:43 in Europe, I get up at 6:30
:( )

Below is the final code of the whole shebang. You suggestion to use
"=MAX(NieuwArtikelNr!D5:D300,1)" did not work out since NieuwArtikelNr
is, yes indeed, a sheetname but a variable one. So I got a browsewindow
every time I tried to use that.

Did not feel like translating anymore so I hope you understand what was
going in here.
I learned a lot from this, thanks for suggestions and thinking along!

Sleep well,

Henro

-------------------code---------------------

Sub nieuweartikelen()
'
' VolgendArtikel Macro
' De macro is op 6-11-2005 opgenomen en aangepast door Henro Veijer.
'
' Sneltoets: CTRL+SHIFT+Z
'

Dim ws As Worksheet
Dim ArtVolgnummer As String
Dim NieuwArtikelNr As String
Dim ProduktCode As String


'Eerst bepalen we de naam van het nieuwe werkblad dmv 2 inputboxen
'Produktcode is de lettercombinatie (ProduktCode)
'die wordt gekoppeld aan de cijfercombinatie (Artikelvolgnummer)
'en zo wordt het artikelnummer bepaald (NieuwArtikelNr)
ProduktCode = InputBox("Geef de produktsoort op" & Chr(10) & Chr(10) &
"HardWare = hw" & Chr(10) & "SoftWare = sw", "Produktsoort")
Artikelvolgnummer = InputBox("Geef het nieuwe artikelnummer op" &
Chr(10) & Chr(10) & "9999", "Artikelnummer")
NieuwArtikelNr = ProduktCode & Artikelvolgnummer
'We controleren op geldigheid van de input
For Each ws In Worksheets
'Eerst controleren op een bestaande naam
If ws.Name = NieuwArtikelNr Then
MsgBox "Artikelnummer bestaat reeds", vbInformation
GoTo FoutMelding
'Dan controleren of Produktcode ingevuld is
ElseIf NieuwArtikelNr = Artikelvolgnummer Then
MsgBox "Geen produktsoort opgegeven", vbInformation
GoTo FoutMelding
'Dan controleren of ArtikelVolgnummer ingevuld is
ElseIf NieuwArtikelNr = ProduktCode Then
MsgBox "Geen artikelvolgnummer opgegeven", vbInformation
GoTo FoutMelding
End If

Next

'Voorwaarden zijn gekozen, we gaan nu het werkblad fabrieken
Maken:
'We kopieren de sheet 'blanco'
Sheets("blanco").Copy Before:=Sheets(1)

'We plaatsen de sheet achteraan en hernoemen de sheet
With ActiveSheet
.Move After:=Worksheets(Worksheets.Count)
.Name = NieuwArtikelNr
End With

'Invullen van de artikelnaam in de sheet
Sheets(NieuwArtikelNr).Select
Range("B1").Select
ActiveCell.Formula = NieuwArtikelNr

' Plaatsen artikelnummer op hoofdblad

Sheets("hoofdblad").Select
Range("A1").End(xlDown).Offset(1, 0).Formula = NieuwArtikelNr

'Plaatsen van de juiste formules in het 'Hoofdblad'

Sheets("hoofdblad").Select

Range("B2").End(xlDown).Offset(1, 0).Formula = "=" & NieuwArtikelNr
& "!$A$3"
Range("C2").End(xlDown).Offset(1, 0).Formula = "=COUNTA(" &
NieuwArtikelNr & "!$A$6:$A$50)<=COUNTA(" & NieuwArtikelNr &
"!$D$6:$D$50)"
Range("D2").End(xlDown).Offset(1, 0).Formula = "=MAX(" &
NieuwArtikelNr & "!A5:A300,1)" & " + 90"
Range("E2").End(xlDown).Offset(1, 0).Formula = "=COUNTA(" &
NieuwArtikelNr & "!$A$6:$A$50)<=COUNTA(" & NieuwArtikelNr &
"!$D$6:$D$50)"
Range("F2").End(xlDown).Offset(1, 0).Formula = "_"
Range("G2").End(xlDown).Offset(1, 0).Formula = "=COUNTA(" &
NieuwArtikelNr & "!$C$6:$C$50)"
Range("H2").End(xlDown).Offset(1, 0).Formula = "=COUNTA(" &
NieuwArtikelNr & "!$A$6:$A$50)"
Range("I2").End(xlDown).Offset(1, 0).Formula = "=" & NieuwArtikelNr
& "!$D$3"
Range("J2").End(xlDown).Offset(1, 0).Formula = "=" & NieuwArtikelNr
& "!$D$3" & " + 365"



GoTo Uitgang


'Foutafhandeling
FoutMelding:
MsgBox "Er is geen nieuw artikel aangemaakt, probeer opnieuw!",
vbCritical

'We verlaten het pand
Uitgang:


End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top