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

foutmelding 438

Status
Niet open voor verdere reacties.

Niels28

Terugkerende gebruiker
Lid geworden
20 nov 2008
Berichten
2.492
Naar aanleiding van deze vraag
http://www.helpmij.nl/forum/showthread.php/682045-Complete-regel-verplaatsen-naar-ander-document

volgende macro geschreven

Code:
Sub inlezen()
'On Error Resume Next
Dim openXls As Workbook
Dim irow As Integer
Dim irow1 As Integer
Dim irow2 As Integer

With ThisWorkbook.Sheets("Toelichting")
irow = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("a2:h" & irow).Delete
End With

For Each openXls In Excel.Workbooks
x = openXls.Name
If x = "Hoofdbestand projectplanning.xls" Then
    With Workbooks(x)
    irow1 = .Cells(Rows.Count, 2).End(xlUp).Row
        .Sheets("blad1").Range("$A$1:$H$" & irow1).AutoFilter Field:=8, Criteria1:="Y"
        .Sheets("blad1").Range("$A$1:$H$" & irow1).Copy ThisWorkbook.Sheets("Toelichting").Range("a2")
        .Sheets("blad1").Range("$A$1:$H$" & irow1).AutoFilter Field:=8
    End With
    Exit Sub
End If
Next

With Workbooks.Open("c:\test\hoofdbestand projectplanning.xls")
irow2 = .Cells(Rows.Count, 2).End(xlUp).Row
        .Sheets("blad1").Range("$A$1:$H$" & irow).A
   .Sheets("blad1").Range("$A$1:$H$" & irow2).AutoFilter Field:=8, Criteria1:="Y"
   .Sheets("blad1").Range("$A$1:$H$" & irow2).Copy ThisWorkbook.Sheets("Toelichting").Range("a2")
   .Sheets("blad1").Range("$A$1:$H$" & irow2).AutoFilter Field:=8
   .Close Savechanges = False
   End With
   
End Sub

Deze werkt niet krijg fout 438 op de regels
irow1 = .Cells(Rows.Count, 2).End(xlUp).Row
heb geprobeerd om er .select bij te plaatsen maar dan gaat het fout op die regel.

Als ik het bereik niet variabel maak en dus de irow regel weg laat gaat het wel goed.
Hoe komt dit?

Niels
 
Probeer eens met punt Niels.
Code:
irow = .Cells([SIZE="7"][COLOR="red"].[/COLOR][/SIZE]Rows.Count, 2).End(xlUp).Row
 
Dag Harry,

Dat geeft geen verschil.

De eerste Irow werk wel deze verwijst naar het bestand waar de macro instaat, de 2de en 3de irow werken niet, deze verwijzen naar het al geopende of te openen bestand.

Volgens mij heeft het iets met dit te maken uit de helpfunctie
U hebt een procedure Friend opgegeven in een oproep met een late koppeling.
De naam van de procedure Friend moet bekend zijn tijdens de compileertijd. Deze kan niet in een oproep met een late koppeling voorkomen.

Maar mijn kennis van VBA is daarvoor nog te klein om dit te snappen

Niels
 
en op welke sheet moet de laatste rij gevonden worden?!?
 
Hallo Niels,

Die punt is nodig voor het blad van 'With Sheets("xxxx")'.
Maar nu zie ik het.
Je hebt nergens verwezen naar een bladnaam. '.cells(.rows.count,2).end(xlup).row', maar van welk blad.
 
:o:o:o

Dat was 'm hartelijk dank.

Maar die punt voor rows.count is niet nodig omdat het niet uitmaakt van welk blad je de rijen telt omdat je hiermee alle rijen telt die de excel versie ter beschikking heeft.


Niels
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan