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

als(niet gevonden) in macro

Status
Niet open voor verdere reacties.

Inekebeu

Gebruiker
Lid geworden
13 jul 2006
Berichten
54
Hallo allemaal,

Ik heb weinig tot geen kennis van Visual Basic; mijn macro’s maak ik dmv muiskliks.
In zo’n macro heb ik een filter ingebouwd met criterium ‘producent is gelijk aan ….’.
De producent in dat criterium is hard ingeregeld;het komt echter voor dat die producent die maand niets heeft geproduceerd en als dat zo is krijgt de gebruiker bij het uitvoeren van die macro de melding dat er een fout in de macro zit.
Er zal ongetwijfeld iets bestaan in de vorm van ‘als niet gevonden’, waarna gebruiker melding in dezen krijgt en de macro dan stopt, maar hoe verwerk ik iets dergelijks in een macro?
Kan iemand mij helpen, waarvoor alvast mijn hartelijke dank.

mvg
Ineke
 
Ineke,

Ik ga je vast niet kunnen helpen, maar waarom plaats je je code hier niet.
Ik denk dat je dan wel meer respons krijgt.
 
Sorry voor de wat late reactie, maar had even tijd nodig om het bestand waar zoiets voorkwam te vinden. Overigens geeft de macro de foutmelding niet bij het niet-vinden, maar bij het berekenen van de subtotalen, welke ik ook gelijk in die macro had ingebouwd.
Is er in die macro wat in te bouwen dat hij gelijk stopt als die producent niet voorkomt, en dan - om het mooi te maken - met een melding richting de gebruiker?

Bijgaand (een klein stukje van) het bestand; ik weet niet wat er met mijn code wordt bedoeld.

Wederom alvast mijn dank voor enige hulp hiermee.

gr.
Ineke
 

Bijlagen

Dank je voor je reactie Wigi, maar, zoals ik al zei, ik heb weinig tot geen verstand van visual basic. Ik heb de macro van de link gekopieerd in mijn excelbestand om te kijken wat die doet, maar krijg al foutmelding bij de 1e regel; ik zal wel wat toe moeten voegen of moeten veranderen, maar heb geen flauw idee wat. Zo weet ik dus ook niet waar ik mijn criterium 'producent is gelijk aan..." neer moet zetten.
Heb je nog suggesties?

gr.
Ineke
 
Bedankt voor je reactie. Het kostte me wel enige tijd om er 1 werkende macro van te maken maar dat is gelukt. Deze ziet er nu als volgt uit.

Dim rng As Range
Dim rng2 As Range


Application.ScreenUpdating = False
Application.StatusBar = "de macro is bezig"
Sheets("specificatie").Select

With ActiveSheet

.AutoFilterMode = False
.Range("A1").AutoFilter

With .AutoFilter.Range
.AutoFilter Field:=5, Criteria1:="V9366"

End With

End With

With ActiveSheet.AutoFilter.Range
On Error Resume Next
Set rng2 = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With
If rng2 Is Nothing Then
MsgBox "Er zijn geen verkopen van deze producent"
Else

Worksheets("SpecApart").Cells.Clear
Set rng = ActiveSheet.AutoFilter.Range
rng.Copy _
Destination:=Worksheets("SpecApart").Range("A1")

End If
ActiveSheet.ShowAllData

Application.ScreenUpdating = True
Application.StatusBar = ""
MsgBox "macro is klaar, je kunt verder"

End Sub


Nou heb ik nog een aanvullende vraag. Als ik nu wil kopieren naar een bestaand geopend leeg bestand ipv naar een tabblad in hetzelfde excelbestand, hoe moet ik dan bovenstaande macro aanpassen?
Het bestaande lege bestand heeft de naam: Procudent_V9366.

Alvast bedankt

mvg
Ineke
 
Bedankt voor je reactie. Het kostte me wel enige tijd om er 1 werkende macro van te maken maar dat is gelukt. Deze ziet er nu als volgt uit.

Code:
Dim rng As Range
Dim rng2 As Range


Application.ScreenUpdating = False
Application.StatusBar = "de macro is bezig"
Sheets("specificatie").Select

With ActiveSheet

.AutoFilterMode = False
.Range("A1").AutoFilter

With .AutoFilter.Range
.AutoFilter Field:=5, Criteria1:="V9366"

End With

End With

With ActiveSheet.AutoFilter.Range
On Error Resume Next
Set rng2 = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With
If rng2 Is Nothing Then
MsgBox "Er zijn geen verkopen van deze producent"
Else

Worksheets("SpecApart").Cells.Clear
Set rng = ActiveSheet.AutoFilter.Range
rng.Copy _
Destination:=Worksheets("SpecApart").Range("A1")

End If
ActiveSheet.ShowAllData

Application.ScreenUpdating = True
Application.StatusBar = ""
MsgBox "macro is klaar, je kunt verder"

End Sub

Nou heb ik nog een aanvullende vraag. Als ik nu wil kopieren naar een bestaand geopend leeg bestand ipv naar een tabblad in hetzelfde excelbestand, hoe moet ik dan bovenstaande macro aanpassen?
Het bestaande lege bestand heeft de naam: Procudent_V9366.

Alvast bedankt

mvg
Ineke
 
Code:
Destination:=Workbooks("Procudent_V9366.xls").Worksheets(1).Range("A1")

Of naam van het Worksheet tussen de haakjes mag ook. Een andere cel kan ook.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan