ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Pull Down Menu - Code not working (https://www.excelbanter.com/excel-programming/388491-pull-down-menu-code-not-working.html)

Laura L[_2_]

Pull Down Menu - Code not working
 
I'm trying to modify the code below so that 1) when using the pull down menu,
it populates the cell below it , and 2) it only applies to one column. Right
now, when you use the pull down menu it just populates that same cell, not
the one below it. Any help is greatly appreciated.

Thanks,
Laura

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long

lCol = Target.Column 'column with data validation cell

If Target.Count 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Target.Offset(0, 1).Value = "" Then
lRow = Target.Row
Else
lRow = Cells(Rows.Count, lCol).End(xlUp).Row + 1
End If
Cells(lRow, lCol).Value = Target.Value
End Select

End If

exitHandler:
Application.EnableEvents = True

End Sub

Bernie Deitrick

Pull Down Menu - Code not working
 
Laura,

I tried to code what your words were describing, not what your code was seeming to do...


Private Sub Worksheet_Change(ByVal Target As Range)

Dim myVal As Variant

If Target.Value = "" Then Exit Sub
If Target.Column < 7 Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
If Intersect(Target, _
Cells.SpecialCells(xlCellTypeAllValidation)) _
Is Nothing Then Exit Sub

myVal = Target.Value
Application.EnableEvents = False
Application.Undo
Target.Offset(1, 0).Value = myVal
Application.EnableEvents = True

End Sub


HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
I'm trying to modify the code below so that 1) when using the pull down menu,
it populates the cell below it , and 2) it only applies to one column. Right
now, when you use the pull down menu it just populates that same cell, not
the one below it. Any help is greatly appreciated.

Thanks,
Laura

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long

lCol = Target.Column 'column with data validation cell

If Target.Count 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Target.Offset(0, 1).Value = "" Then
lRow = Target.Row
Else
lRow = Cells(Rows.Count, lCol).End(xlUp).Row + 1
End If
Cells(lRow, lCol).Value = Target.Value
End Select

End If

exitHandler:
Application.EnableEvents = True

End Sub




Laura L[_2_]

Pull Down Menu - Code not working
 
Hi, this does help but I also need it to populate each row beneath the pull
down menu, that's why I thought I needed the "+1" string. How do I add that
to it?

Thanks again!

"Bernie Deitrick" wrote:

Laura,

I tried to code what your words were describing, not what your code was seeming to do...


Private Sub Worksheet_Change(ByVal Target As Range)

Dim myVal As Variant

If Target.Value = "" Then Exit Sub
If Target.Column < 7 Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
If Intersect(Target, _
Cells.SpecialCells(xlCellTypeAllValidation)) _
Is Nothing Then Exit Sub

myVal = Target.Value
Application.EnableEvents = False
Application.Undo
Target.Offset(1, 0).Value = myVal
Application.EnableEvents = True

End Sub


HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
I'm trying to modify the code below so that 1) when using the pull down menu,
it populates the cell below it , and 2) it only applies to one column. Right
now, when you use the pull down menu it just populates that same cell, not
the one below it. Any help is greatly appreciated.

Thanks,
Laura

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long

lCol = Target.Column 'column with data validation cell

If Target.Count 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Target.Offset(0, 1).Value = "" Then
lRow = Target.Row
Else
lRow = Cells(Rows.Count, lCol).End(xlUp).Row + 1
End If
Cells(lRow, lCol).Value = Target.Value
End Select

End If

exitHandler:
Application.EnableEvents = True

End Sub





Bernie Deitrick

Pull Down Menu - Code not working
 
Laura,

The line

Target.Offset(1, 0).Value = myVal

does just that - it fills in the row below the cell with the pulldown.

(Though it would be just as easy to fill in that cell directly...)

So, I'm not sure what you want besides that...

HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
Hi, this does help but I also need it to populate each row beneath the pull
down menu, that's why I thought I needed the "+1" string. How do I add that
to it?

Thanks again!

"Bernie Deitrick" wrote:

Laura,

I tried to code what your words were describing, not what your code was seeming to do...


Private Sub Worksheet_Change(ByVal Target As Range)

Dim myVal As Variant

If Target.Value = "" Then Exit Sub
If Target.Column < 7 Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
If Intersect(Target, _
Cells.SpecialCells(xlCellTypeAllValidation)) _
Is Nothing Then Exit Sub

myVal = Target.Value
Application.EnableEvents = False
Application.Undo
Target.Offset(1, 0).Value = myVal
Application.EnableEvents = True

End Sub


HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
I'm trying to modify the code below so that 1) when using the pull down menu,
it populates the cell below it , and 2) it only applies to one column. Right
now, when you use the pull down menu it just populates that same cell, not
the one below it. Any help is greatly appreciated.

Thanks,
Laura

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long

lCol = Target.Column 'column with data validation cell

If Target.Count 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Target.Offset(0, 1).Value = "" Then
lRow = Target.Row
Else
lRow = Cells(Rows.Count, lCol).End(xlUp).Row + 1
End If
Cells(lRow, lCol).Value = Target.Value
End Select

End If

exitHandler:
Application.EnableEvents = True

End Sub







Laura L[_2_]

Pull Down Menu - Code not working
 
Hi Bernie,
How do you get it to populate cells beneath the pull down? Not just the cell
below it? (one at a time)

Laura

"Bernie Deitrick" wrote:

Laura,

I tried to code what your words were describing, not what your code was seeming to do...


Private Sub Worksheet_Change(ByVal Target As Range)

Dim myVal As Variant

If Target.Value = "" Then Exit Sub
If Target.Column < 7 Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
If Intersect(Target, _
Cells.SpecialCells(xlCellTypeAllValidation)) _
Is Nothing Then Exit Sub

myVal = Target.Value
Application.EnableEvents = False
Application.Undo
Target.Offset(1, 0).Value = myVal
Application.EnableEvents = True

End Sub


HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
I'm trying to modify the code below so that 1) when using the pull down menu,
it populates the cell below it , and 2) it only applies to one column. Right
now, when you use the pull down menu it just populates that same cell, not
the one below it. Any help is greatly appreciated.

Thanks,
Laura

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long

lCol = Target.Column 'column with data validation cell

If Target.Count 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Target.Offset(0, 1).Value = "" Then
lRow = Target.Row
Else
lRow = Cells(Rows.Count, lCol).End(xlUp).Row + 1
End If
Cells(lRow, lCol).Value = Target.Value
End Select

End If

exitHandler:
Application.EnableEvents = True

End Sub





Laura L[_2_]

Pull Down Menu - Code not working
 
Hi Bernie,
If the pull down menu is in G3, I need to be able to use the pull down for
all the cells below G3, not just G4.... is it possible?

"Bernie Deitrick" wrote:

Laura,

The line

Target.Offset(1, 0).Value = myVal

does just that - it fills in the row below the cell with the pulldown.

(Though it would be just as easy to fill in that cell directly...)

So, I'm not sure what you want besides that...

HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
Hi, this does help but I also need it to populate each row beneath the pull
down menu, that's why I thought I needed the "+1" string. How do I add that
to it?

Thanks again!

"Bernie Deitrick" wrote:

Laura,

I tried to code what your words were describing, not what your code was seeming to do...


Private Sub Worksheet_Change(ByVal Target As Range)

Dim myVal As Variant

If Target.Value = "" Then Exit Sub
If Target.Column < 7 Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
If Intersect(Target, _
Cells.SpecialCells(xlCellTypeAllValidation)) _
Is Nothing Then Exit Sub

myVal = Target.Value
Application.EnableEvents = False
Application.Undo
Target.Offset(1, 0).Value = myVal
Application.EnableEvents = True

End Sub


HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
I'm trying to modify the code below so that 1) when using the pull down menu,
it populates the cell below it , and 2) it only applies to one column. Right
now, when you use the pull down menu it just populates that same cell, not
the one below it. Any help is greatly appreciated.

Thanks,
Laura

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long

lCol = Target.Column 'column with data validation cell

If Target.Count 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Target.Offset(0, 1).Value = "" Then
lRow = Target.Row
Else
lRow = Cells(Rows.Count, lCol).End(xlUp).Row + 1
End If
Cells(lRow, lCol).Value = Target.Value
End Select

End If

exitHandler:
Application.EnableEvents = True

End Sub







Bernie Deitrick

Pull Down Menu - Code not working
 
Laura,

Try

Cells(Rows.Count, 7).End(xlUp)(2).Value = myVal

to fill in the first empty cell below G3 (G4, then G5, then G6, etc.)

HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
Hi Bernie,
If the pull down menu is in G3, I need to be able to use the pull down for
all the cells below G3, not just G4.... is it possible?

"Bernie Deitrick" wrote:

Laura,

The line

Target.Offset(1, 0).Value = myVal

does just that - it fills in the row below the cell with the pulldown.

(Though it would be just as easy to fill in that cell directly...)

So, I'm not sure what you want besides that...

HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
Hi, this does help but I also need it to populate each row beneath the pull
down menu, that's why I thought I needed the "+1" string. How do I add that
to it?

Thanks again!

"Bernie Deitrick" wrote:

Laura,

I tried to code what your words were describing, not what your code was seeming to do...


Private Sub Worksheet_Change(ByVal Target As Range)

Dim myVal As Variant

If Target.Value = "" Then Exit Sub
If Target.Column < 7 Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
If Intersect(Target, _
Cells.SpecialCells(xlCellTypeAllValidation)) _
Is Nothing Then Exit Sub

myVal = Target.Value
Application.EnableEvents = False
Application.Undo
Target.Offset(1, 0).Value = myVal
Application.EnableEvents = True

End Sub


HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
I'm trying to modify the code below so that 1) when using the pull down menu,
it populates the cell below it , and 2) it only applies to one column. Right
now, when you use the pull down menu it just populates that same cell, not
the one below it. Any help is greatly appreciated.

Thanks,
Laura

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long

lCol = Target.Column 'column with data validation cell

If Target.Count 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Target.Offset(0, 1).Value = "" Then
lRow = Target.Row
Else
lRow = Cells(Rows.Count, lCol).End(xlUp).Row + 1
End If
Cells(lRow, lCol).Value = Target.Value
End Select

End If

exitHandler:
Application.EnableEvents = True

End Sub









Laura L[_2_]

Pull Down Menu - Code not working
 
THANK YOU!!!!!!

"Bernie Deitrick" wrote:

Laura,

Try

Cells(Rows.Count, 7).End(xlUp)(2).Value = myVal

to fill in the first empty cell below G3 (G4, then G5, then G6, etc.)

HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
Hi Bernie,
If the pull down menu is in G3, I need to be able to use the pull down for
all the cells below G3, not just G4.... is it possible?

"Bernie Deitrick" wrote:

Laura,

The line

Target.Offset(1, 0).Value = myVal

does just that - it fills in the row below the cell with the pulldown.

(Though it would be just as easy to fill in that cell directly...)

So, I'm not sure what you want besides that...

HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
Hi, this does help but I also need it to populate each row beneath the pull
down menu, that's why I thought I needed the "+1" string. How do I add that
to it?

Thanks again!

"Bernie Deitrick" wrote:

Laura,

I tried to code what your words were describing, not what your code was seeming to do...


Private Sub Worksheet_Change(ByVal Target As Range)

Dim myVal As Variant

If Target.Value = "" Then Exit Sub
If Target.Column < 7 Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
If Intersect(Target, _
Cells.SpecialCells(xlCellTypeAllValidation)) _
Is Nothing Then Exit Sub

myVal = Target.Value
Application.EnableEvents = False
Application.Undo
Target.Offset(1, 0).Value = myVal
Application.EnableEvents = True

End Sub


HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
I'm trying to modify the code below so that 1) when using the pull down menu,
it populates the cell below it , and 2) it only applies to one column. Right
now, when you use the pull down menu it just populates that same cell, not
the one below it. Any help is greatly appreciated.

Thanks,
Laura

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long

lCol = Target.Column 'column with data validation cell

If Target.Count 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Target.Offset(0, 1).Value = "" Then
lRow = Target.Row
Else
lRow = Cells(Rows.Count, lCol).End(xlUp).Row + 1
End If
Cells(lRow, lCol).Value = Target.Value
End Select

End If

exitHandler:
Application.EnableEvents = True

End Sub










Laura L[_2_]

Pull Down Menu - Code not working
 
THANK YOU!!!!!! Awesome!

"Bernie Deitrick" wrote:

Laura,

Try

Cells(Rows.Count, 7).End(xlUp)(2).Value = myVal

to fill in the first empty cell below G3 (G4, then G5, then G6, etc.)

HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
Hi Bernie,
If the pull down menu is in G3, I need to be able to use the pull down for
all the cells below G3, not just G4.... is it possible?

"Bernie Deitrick" wrote:

Laura,

The line

Target.Offset(1, 0).Value = myVal

does just that - it fills in the row below the cell with the pulldown.

(Though it would be just as easy to fill in that cell directly...)

So, I'm not sure what you want besides that...

HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
Hi, this does help but I also need it to populate each row beneath the pull
down menu, that's why I thought I needed the "+1" string. How do I add that
to it?

Thanks again!

"Bernie Deitrick" wrote:

Laura,

I tried to code what your words were describing, not what your code was seeming to do...


Private Sub Worksheet_Change(ByVal Target As Range)

Dim myVal As Variant

If Target.Value = "" Then Exit Sub
If Target.Column < 7 Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
If Intersect(Target, _
Cells.SpecialCells(xlCellTypeAllValidation)) _
Is Nothing Then Exit Sub

myVal = Target.Value
Application.EnableEvents = False
Application.Undo
Target.Offset(1, 0).Value = myVal
Application.EnableEvents = True

End Sub


HTH,
Bernie
MS Excel MVP


"Laura L" wrote in message
...
I'm trying to modify the code below so that 1) when using the pull down menu,
it populates the cell below it , and 2) it only applies to one column. Right
now, when you use the pull down menu it just populates that same cell, not
the one below it. Any help is greatly appreciated.

Thanks,
Laura

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long

lCol = Target.Column 'column with data validation cell

If Target.Count 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Target.Offset(0, 1).Value = "" Then
lRow = Target.Row
Else
lRow = Cells(Rows.Count, lCol).End(xlUp).Row + 1
End If
Cells(lRow, lCol).Value = Target.Value
End Select

End If

exitHandler:
Application.EnableEvents = True

End Sub











All times are GMT +1. The time now is 12:11 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com