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

celwaarde

Status
Niet open voor verdere reacties.

W Bloemendal

Gebruiker
Lid geworden
28 jan 2001
Berichten
503
hallo
Ik heb de volgende regel in een macro staan.
"Cells(rij, 10).Value = Cells(rij, 8).Value / X"
Nu wil ik dat als er geen getal in cells(rij,8) staat deze regel overgeslagen wordt.
Momenteel krijg ik soms een foutmelding als er geen getal in de cel staat.

wim
 
Laatst bewerkt:
Code:
If Not Cells(rij,8).Value = "" Then
     Cells(rij,10).Value = Cells(rij,8).Value / X
End If

Mvg

Rudi
 
Laatst bewerkt:
ik krijg de fout else without if ik heb in de macro al meer if staan hierbij de hele macro

Sub Verplaats(ByVal sht As String, ByVal ref As String, ByVal X As Integer)
Application.ScreenUpdating = False

Dim aantal As Integer
Dim i As Integer
Dim best As Worksheet
Dim Bron As Worksheet
Dim temp As Integer

Set Bron = ActiveSheet
Set best = Sheets(sht)
If Bron.Name = best.Name Then GoTo 12
aantal = ActiveWindow.RangeSelection.Cells.Count / 256
If ActiveWindow.RangeSelection.Cells.Count / 256 = aantal Then
rij = ActiveCell.Row

' vrijgave
best.Unprotect "planning"
Bron.Select
If Bron.Name = "8-sp" Then Call Bescherm8sp: GoTo 13
If Bron.Name = "E-b" Then Call BeschermEB: GoTo 13
If Bron.Name = "NAGEL" Then Call beschermNag: GoTo 13
If Bron.Name = "4-sp" Then Call bescherm4sp: GoTo 13
If Bron.Name = "TB-1" Then Call BeschermTB1: GoTo 13
If Bron.Name = "TB-2" Then Call BeschermTB2: GoTo 13
If Bron.Name = "nadr." Then Call beschermNadr: GoTo 13
bescherm2
13 Rows(rij).Select
If ActiveCell.Locked Then GoTo 11
If Not Cells(rij, 8).Value = "" Then
If Cells(rij, 8).Value <> 0 Then Cells(rij, 10).Value = Cells(rij, 8).Value / X
End If
End If
' copieren
14 Selection.copy
Application.Goto Reference:=ref

Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Selection.EntireRow.Insert
Bron.Select
Selection.Delete Shift:=xlUp

' beveiligen
MacroA1


Bron.Select
Rows(rij).Select

Else
MsgBox "Wrong selectie", vbExclamation
End If

Application.ScreenUpdating = True: End

11 MsgBox "cellen Geblokkeerd", vbExclamation: End
12 MsgBox "Verplaatsen op zelfde blad gaat niet", vbExclamation
End Sub
 
Nee ik kreeg de melding else without if bij
Else
MsgBox "Wrong selectie", vbExclamation
 
W Bloemendal,

Code:
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Selection.EntireRow.Insert
Bron.Select
Selection.Delete Shift:=xlUp

' beveiligen
MacroA1

Bron.Select
Rows(rij).Select

Else
MsgBox "Wrong selectie", vbExclamation
End If

Application.ScreenUpdating = True: End

11 MsgBox "cellen Geblokkeerd", vbExclamation: End
12 MsgBox "Verplaatsen op zelfde blad gaat niet", vbExclamation
End Sub

Boven Else heb je geen IF staan en denk dat het daardoor komt.
De volgende keer moet je de code selecteren en dan op het # boven klikken, dan is de code in een vak gezet. (Wist ik eerst ook niet hoor)
 
Als je systematiek in je code aanbrengt (inspringen na IF, With, For..etc.) blijkt vanzelf wat je over het hoofd ziet.
Call is een overbodige instruktie

Code:
Application.run "Bescherm" & Activesheet.name
kan minimaal 8 coderegels vervangen.
 
Voordat ik de volgende regels ingevoerd had

Code:
If Not Cells(rij, 8).Value = "" Then
If Cells(rij, 8).Value <> 0 Then Cells(rij, 10).Value = Cells(rij, 8).Value / X
End If
End If


Werkte de macro wel
 
W Bloemendal,

Voordat ik de volgende regels ingevoerd had

Code:
Code:
If Not Cells(rij, 8).Value = "" Then
If Cells(rij, 8).Value <> 0 Then Cells(rij, 10).Value = Cells(rij, 8).Value / X
End If
End If

Na de laatste end IF zie ik geen IF meer.
 
Voordat ik de volgende regels ingevoerd had

Code:
If Not Cells(rij, 8).Value = "" Then
If Cells(rij, 8).Value <> 0 Then Cells(rij, 10).Value = Cells(rij, 8).Value / X
End If
End If


Werkte de macro wel

Er staat in die code een End IF te veel.

Met vriendelijke groet,


Roncancio
 
Hoornvan

de else is voor

Code:
If ActiveWindow.RangeSelection.Cells.Count / 256 = aantal Then
rij = ActiveCell.Row

snb

de 8 regels kunnen niet vervangen worden door

Code:
Application.run "Bescherm" & Activesheet.name

omdat er 15 sheets zijn de andere worden beschermd met
Code:
bescherm2
 
Zoals Wim al aangaf, deze
Code:
If Not Cells(rij, 8).Value = "" Then
If Cells(rij, 8).Value <> 0 Then Cells(rij, 10).Value = Cells(rij, 8).Value / X
End If
End If
moet worden
Code:
If Not Cells(rij, 8).Value = "" Then
If Cells(rij, 8).Value <> 0 Then Cells(rij, 10).Value = Cells(rij, 8).Value / X
End If

Mvg

Rudi
 
ja zo klopt het wel maar als er op de spatie gedrukt is of een letter of teken in de cel staat dan geeft de volkgende regel toch een fout melding

Code:
  If Cells(rij, 8).Value <> 0 [B]Then Cells(rij, 10).Value = Cells(rij, 8).Value / X[/B]
    End If

de fout heb ik vet gemaakt

kolom 8 is op verschillende bladen verborgen daarom is het voor degene die met het programma werken niet mogelijk om daar naar te kijken
per regel staan gegevens die bij elkaar moeten blijven daarom zijn de bladen beveiligd met wachtwoord.

wim
 
Code:
If IsNumeric(Range("H" & Rij).Value) Then Range("J" & Rij) = Range("H" & Rij).Value / X

Met vriendelijke groet,


Roncancio
 
Code:
If IsNumeric(Cells(rij, 8).Value) Then
  If Cells(rij, 8).Value <> 0 Then Cells(rij, 10).Value = Cells(rij, 8).Value / X
End If

Mvg

Rudi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan