AutoCreateData

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

if i entered some values at some columns, these values are not inside the
database, is it possible to so-called auto-create into the database?
is macro required?

A B C D
1 1 1 1

If these values are not found in sheet 2(i rename as "data"), it will auto
capture and save inside sheet data.
Maybe there's a button called "Capture" ?

Regards,
kyo
 
Thanks for the link.
i have no idea how to use marco.
Do i copy:
Sub UpdateLogWorksheet()

Dim historyWks As Worksheet
Dim inputWks As Worksheet

Dim nextRow As Long
Dim oCol As Long

Dim myRng As Range
Dim myCopy As String
Dim myCell As Range

'cells to copy from Input sheet - some contain formulas
myCopy = "D5,D7,D9,D11,D13"

Set inputWks = Worksheets("Input")
Set historyWks = Worksheets("PartsData")

With historyWks
nextRow = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
End With

With inputWks
Set myRng = .Range(myCopy)

If Application.CountA(myRng) <> myRng.Cells.Count Then
MsgBox "Please fill in all the cells!"
Exit Sub
End If
End With

With historyWks
With .Cells(nextRow, "A")
.Value = Now
.NumberFormat = "mm/dd/yyyy hh:mm:ss"
End With
.Cells(nextRow, "B").Value = Application.UserName
oCol = 3
For Each myCell In myRng.Cells
historyWks.Cells(nextRow, oCol).Value = myCell.Value
oCol = oCol + 1
Next myCell
End With

'clear input cells that contain constants
With inputWks
On Error Resume Next
With .Range(myCopy).Cells.SpecialCells(xlCellTypeConstants)
.ClearContents
Application.Goto .Cells(1) ', Scroll:=True
End With
On Error GoTo 0
End With

End Sub


when i hit Alt+F11?
 
let say i got these:
the ? sign reprsents empty cell.
M1 M2 M3
Low K ? ? ?
Lower k ? ? ?
Lowest k ? ? ?

If user enter
M1 M2 M3
Low K 1 1 ?
Lower k ? ? 2
Lowest k ? ? 5

it will capture inside another worksheet called "Data"
The Data sheet is sort by M1_Lowk, M1_Lowerk, M1_Lowestk, M2_Lowk,
M2_Lowestk, M2_Lowestk, M3_Lowk, M3_Lowerk, M3_Lowestk

The user can enter any value within that 9 empty cells. Be it fill out all
or fill 1.
Is it possible?
 
let say i got these:
the ? sign reprsents empty cell.
M1 M2 M3
Low K ? ? ?
Lower k ? ? ?


If user enters:
M1 M2 M3
Low K 1 1 ?
Lower k ? ? 2


it will capture inside another worksheet called "Data"
The Data sheet is sort by

Above enters will print:
M1_Lowk, M1_Lowerk, M2_Lowk,M2_Lowestk, M3_Lowk, M3_Lowerk,
1 1
3

The user can enter any value within that 6 empty cells. Be it fill out all
or fill 1. The capture will need a solid forumula since is using 2-D array.
Is it possible?



kyoshirou said:
let say i got these:
the ? sign reprsents empty cell.
M1 M2 M3
Low K ? ? ?
Lower k ? ? ?
Lowest k ? ? ?

If user enter
M1 M2 M3
Low K 1 1 ?
Lower k ? ? 2
Lowest k ? ? 5

it will capture inside another worksheet called "Data"
The Data sheet is sort by M1_Lowk, M1_Lowerk, M1_Lowestk, M2_Lowk,
M2_Lowestk, M2_Lowestk, M3_Lowk, M3_Lowerk, M3_Lowestk

The user can enter any value within that 9 empty cells. Be it fill out all
or fill 1.
Is it possible?
 
The line you'll want to change is this:

myCopy = "D5,D7,D9,D11,D13"

But you'll want to provide the cell addresses for each of those 9 or 6 values.
Put them in the same order that you want to see in the second worksheet.
 
if i use myCopy = "D5,D7,D9,D11,D13"
that means these 5 cells have to be entered which i dont want.
i need the users to enter at least only 1 value by the 2D column.
 
You have to change those addresses to each of the addresses in that range.

If the range where they entered data was g11:I13, then you'd put:

myCopy = "g11,g12,g13,i11,i12,i13"

But I'm not sure I understand your comment.

if i use myCopy = "D5,D7,D9,D11,D13"
that means these 5 cells have to be entered which i dont want.
i need the users to enter at least only 1 value by the 2D column.
 
If you don't want to enter values into all the cells, you can change this check:

to something like:
Hi Dave,
that means i have to enter the values for all cells which i do not want.
 
let say i have this in sheet1:

the ? sign reprsents empty cell.
M1 M2 M3
Low K ? ? ?
Lower k ? ? ?

If user enters:
M1 M2 M3
Low K 1 1 ?
Lower k ? ? 2
The values will capture inside another worksheet called "Data"

Inside sheet " Data":
M1_Lowk, M1_Lowerk, M2_Lowk,M2_Lowestk, M3_Lowk, M3_Lowerk,
1 1
2

That's what i'm trying to do :)
 
So in any one column, you have to have exactly 1 item chosen?

With inputWks
Set myRng = .Range(myCopy)

if application.counta(.range("A5:a6")) <> 1 _
or application.counta(.range("B5:b6")) <> 1 _
or application.counta(.range("C5:C6")) <> 1 then
msgbox "exactly one response in each of those 3 columns!"
exit sub
end if
End With

But since you didn't share what the addresses are, I used A5:C6.
let say i have this in sheet1:

the ? sign reprsents empty cell.
M1 M2 M3
Low K ? ? ?
Lower k ? ? ?

If user enters:
M1 M2 M3
Low K 1 1 ?
Lower k ? ? 2
The values will capture inside another worksheet called "Data"

Inside sheet " Data":
M1_Lowk, M1_Lowerk, M2_Lowk,M2_Lowestk, M3_Lowk, M3_Lowerk,
1 1
2

That's what i'm trying to do :)
 
Please take a look at this:
In worksheet "MAIN":
A B C D
1 M1 M2 M3
2 LowK ? ? ?
3 Lowerk ? ? ?

If the user enters:
A B C D
1 M1 M2 M3
2 LowK 1 ? ?
3 Lowerk ? 2 ?

Anter enters a button called "save"

The new-enters value will be save in new worksheet "Data"
In worksheet "Data":

M1 Lowk | M1 Lowerk | M2 Lowk | M2 Lowerk | M3 Lowk | M3 Lowerk
1 0 2 0 0
0


Is it clear? Hope so.. haha
 
Back
Top