Cell_Graph
15 отговора
0 прегледа
Cell_Graph
Здравейте, искам да попитам нещо... Дано има някой който да се сти как да го направя... Значи имам фаил с макроси, който ми обработва едни данни..В основния sheet имам бутон(свързан с изпълнение на макрос).При натискане на този бутон, макроса трябва да извади от вече получена таблица, от определена колона клетки с еднакво съдържание( например- "диск1" и "диск2") и да ги подреди според информацията в други две колони(шкаф, позия в шкаф)В този sheet в който очаквам резултата съм си направил вида на "шкафа" та идеята ми е ако може тази подредба да е според (шкаф, позия в шкаф) т.е. да стане нещо като графично визиоализиране...
Мерси предварително :)))
Мерси предварително :)))
Re: Cell_Graph
Не си го обеснил много добре, но предполагам, че искаш някакво сортиране по избрани критерии.
Мисля, че е най-добре да сложиш филтри над полетата за "диск" и "шкаф"
после пускаш запис на нов макрос > филтрираш данните по полетата, които искаш, сортираш по начина които искаш, спираш макроса и гледаш какъв код е изписан. След това си го модифицираш така, че да ти върши работа
Мисля, че е най-добре да сложиш филтри над полетата за "диск" и "шкаф"
после пускаш запис на нов макрос > филтрираш данните по полетата, които искаш, сортираш по начина които искаш, спираш макроса и гледаш какъв код е изписан. След това си го модифицираш така, че да ти върши работа
Re: Cell_Graph
Здравей, благодаря за съдействието :))
Значи идеята ми е следната: Имам три колони "A,B,C". В колона "А" има различни модули, като имената им се повтарят.В колона "В" има информация дадения модул в кой шкаф се намира( 0 или 1 ) и колона"С" има информация за позицията на модула в дадения шкаф (0,1,2,3,4,5,6,7)... Например "Модул/шкаф 0/позиция0 или Модул/шкаф 0/позиция5/ и т.н.
Та идеята е на базата на тази информация чрез макрос през бутон "Покажи шкаф" да се копират модулите на друг схеет подредени според шкаф 0/позиция0 или шкаф 0/позиция5/, като всяка позиция си има място на другия sheet( 0/0=C13;0/1=D13 и т.н..)
Надявам се да съм го обяснил правилно :))
Значи идеята ми е следната: Имам три колони "A,B,C". В колона "А" има различни модули, като имената им се повтарят.В колона "В" има информация дадения модул в кой шкаф се намира( 0 или 1 ) и колона"С" има информация за позицията на модула в дадения шкаф (0,1,2,3,4,5,6,7)... Например "Модул/шкаф 0/позиция0 или Модул/шкаф 0/позиция5/ и т.н.
Та идеята е на базата на тази информация чрез макрос през бутон "Покажи шкаф" да се копират модулите на друг схеет подредени според шкаф 0/позиция0 или шкаф 0/позиция5/, като всяка позиция си има място на другия sheet( 0/0=C13;0/1=D13 и т.н..)
Надявам се да съм го обяснил правилно :))
Re: Cell_Graph
позициите могат ли да се повтарят?
в смисъл в шкаф 0/0 може ли да има повече от един модул
в смисъл в шкаф 0/0 може ли да има повече от един модул
Re: Cell_Graph
Не, всеки модул си има точно определена позиция(според колони В и С) в дадения шкаф... Шкафа може да е един и същ, но позицията е или празна или има само един модул...
Re: Cell_Graph
не съм сигурен точно каква ти е идеята защото ако не се повтарят то си е 1:1 аутофилтър.
Все пак виж >това<
едва ли е точно това което искаш но в кода с макросите може да изпозлваш нещичко. В примера не е задължително да са на уникални позиции, т.е. позицията я третирам като джоб в който може да има няколко диска :)
Все пак виж >това<
едва ли е точно това което искаш но в кода с макросите може да изпозлваш нещичко. В примера не е задължително да са на уникални позиции, т.е. позицията я третирам като джоб в който може да има няколко диска :)
Re: Cell_Graph
Значи идеята е че колони А,В,С ги получавам след обработка на други данни.... и позицията на даден модул е точно определена, като не може да има два модула на една и съща позиция.Например ако в А,В,С има инфо (ССС|0|2) то "ССС" се копира на другия sheet в точно определена клетка(С12)която отговаря на 0|2, а ако няма такова инфо то клетката остава празна...
Re: Cell_Graph
p.s. ... Като модулите са само два вида "ССС" и "DDD", шкафовете са 0,1,2, а позициите в шкафовете са от 0 до 7...
Re: Cell_Graph
C12 е клетка в новия sheet, която съм я избрал да отговаря на стойността на Шкаф 0 -позиция 0, D12 е за стойност на шкаф 0 -позиция1 и т.н ... идеята е като се наредят модулите да се образува нещо като картинка на целия шкаф
Re: Cell_Graph
oki, qsno
лесно е ама сега съм обедна почивка по-късно ще пусна кода или файла
само за последно уточнение
имаш 3 шийта
- база с данни (колони A, B, C)
- С - изглед на този шкаф
- D - изглед на този шкаф
и при натискане на бутон информацията се обновява нали?
лесно е ама сега съм обедна почивка по-късно ще пусна кода или файла
само за последно уточнение
имаш 3 шийта
- база с данни (колони A, B, C)
- С - изглед на този шкаф
- D - изглед на този шкаф
и при натискане на бутон информацията се обновява нали?
Re: Cell_Graph
не, имам 2 sheet-a... първият sheet го получавам като с друг макрос изтеглям точно определена информация от едно голяма база данни... резултата е една голяма таблица с няколко колони..идеята ми е след натискане на бутон "Виж шкаф" да обработя три от колоните така,че на втория sheet да излизат инфо от (sheet1-колона "А"), но подредена според инфото в колони "В" и "С"...От колона "А" ме интересуват само две неща "Модул1" и "Модул2", като на всеки модул1 или модул2 могат да съответсват шкаф и позиця( шкаф0 или шкаф1 и позиция 0,1,2,3,4,5,6,7)Шкафа мозе да е един и същ за модулите но позицията е заета само от един модул или пък е празна.....В sheet 2 трябжа да има някакво съответствие м/у ш/поз и дадена клетка за да може при резулта модулите да излизат подредени по шкафове и по позиции и да изглежда нещо като картинка на шкафа, а ако в sheet 1 няма модул с дадени ш/поз то тази клетка в sheet2 да остава празна...
Дано съм бил ясен:)))))
Дано съм бил ясен:)))))
Re: Cell_Graph
резултатите от двата шкафа се показват в един и същи шийт?
да разбирам че са един под друг...
останаха две питанки
- след натискане на бутона само единия модул ли да ти покаже визуално или искаш и двата наведнъж (понеже не се припокриват по позиции)
- напиши областите в които трябва да излизат резултатите
ако ти е по-сладко сам се опитай да си го направиш
най-удачно е да се спуснеш надолу по колоната А1 и да търиш съвпадение на конкретния модул
нещо такова:
да разбирам че са един под друг...
останаха две питанки
- след натискане на бутона само единия модул ли да ти покаже визуално или искаш и двата наведнъж (понеже не се припокриват по позиции)
- напиши областите в които трябва да излизат резултатите
ако ти е по-сладко сам се опитай да си го направиш
най-удачно е да се спуснеш надолу по колоната А1 и да търиш съвпадение на конкретния модул
нещо такова:
Option Explicit
Sub go()
Dim who$ 'кой от двата модула да се визуализира
Dim pos 'позиция/отместване надолу в шийт2
'изтриваме стари данни в шийт2
Sheets("sheet2").Select
Range("A2:A15").Select
Selection.ClearContents
Sheets("sheet1").Select
Range("a1").Select
who$ = InputBox("choose shkaf", "?", "module1")
pos = 0
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Value = who$ Then
pos = ActiveCell.Offset(0, 2)
'предполагам че втория шкаф е под първия
If ActiveCell.Offset(0, 1) = "1" Then pos = pos + 10
Sheets("sheet2").Select
Range("A1").Select
ActiveCell.Offset(pos, 0).Value = who$
End If
Sheets("sheet1").Select
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Re: Cell_Graph
Здравей, изжинявай, но чак сега ми остана време да седна пред PC-то.... значи идеята ти е много добра, но аз искам като натиснеш бутона"Покажи шкаф" директно да ми излизат модулите подрени в шкафа, който съм си визиоализирал с отделни клетки... Например, модул "ССС" с параметри "шкаф0/позиция0(таблицата в sheet 1) трябва да се копира в клетка "С13" на sheet2... модул "ССС" с параметри "шкаф0/позиция1(таблицата в sheet 1) трябва да се копира в клетка "D13" на sheet2... модул "ССС" с параметри "шкаф0/позиция2(таблицата в sheet 1) трябва да се копира в клетка "С11" на sheet2... модул "ССС" с параметри "шкаф0/позиция3(таблицата в sheet 1) трябва да се копира в клетка "D11" на sheet2... и т.н.... Аз ако успея да го направя за шкаф0 предполагам,че няма да има порблем и с другите шкафове...Пробвах с някакъв цикъл, но не съм толкова на ясно ... та нищо не излезе... Шкафа изглежда горе-долу така....
___________________________________ empty(C8)ddd(D8) ddd(F8) ddd(G8)
___________________________________ ccc(C11) ccc(D11) ccc(F11) empty(G11)
___________________________________ ccc(C13) ccc(D13) ccc(F13) empty(G13)
МЕРСИ ЗА СЪДЕЙСТВИЕТО :)))
___________________________________ empty(C8)ddd(D8) ddd(F8) ddd(G8)
___________________________________ ccc(C11) ccc(D11) ccc(F11) empty(G11)
___________________________________ ccc(C13) ccc(D13) ccc(F13) empty(G13)
МЕРСИ ЗА СЪДЕЙСТВИЕТО :)))
Re: Cell_Graph
Според мен, най-добре е да обходиш редовете в Sheet1 с цикъл, ползваш адресиране от вида Cells(Row, Column) и на база информацията в колони В и С на Sheet1 да изчислявяш адреса на клетката в Sheet2, където да се копират клетките от колона А. Нещо от сорта:
Sheet2.Cells.Clear ' Изчистваме всичко от Sheet2
Sheet1.Activate
For i = 2 to 10 step 1
Sheet2.Cells(Cells(i, 2) + 13, Cells(i, 3) + 1) = Cells(i, 1)
Next i
Червеното изчислява реда, а синьото - колоната. Така на всеки шкаф в Sheet1 ще отговаря един ред в Sheet2, a на всяка позиция - колона. Ако искаш друго подреждане, ще трябва да промениш тези формули.
Това ще работи ако в колони B и C имаш само числа, обозначававащи съответния шкаф или позиция. Ако не, може да използваш функциятd mid().
Sheet2.Cells.Clear ' Изчистваме всичко от Sheet2
Sheet1.Activate
For i = 2 to 10 step 1
Sheet2.Cells(Cells(i, 2) + 13, Cells(i, 3) + 1) = Cells(i, 1)
Next i
Червеното изчислява реда, а синьото - колоната. Така на всеки шкаф в Sheet1 ще отговаря един ред в Sheet2, a на всяка позиция - колона. Ако искаш друго подреждане, ще трябва да промениш тези формули.
Това ще работи ако в колони B и C имаш само числа, обозначававащи съответния шкаф или позиция. Ако не, може да използваш функциятd mid().
Редактирано от zhitov на
Re: Cell_Graph
Мерси за съдействието... вече почти го оправих този проблем... Използвах IF и ElseIf... Сега с друго се мотая:))) имам две колони в които :
CCC 0
CCC 0
CCC 1
CCC 1
CCC 2
CCC 2
Искам в определена клетка да ми излиза "Count" за тези колони т.е. при тази информация в клетката да ми излиза 2/2/2.....
CCC 0
CCC 0
CCC 1
CCC 1
CCC 2
CCC 2
Искам в определена клетка да ми излиза "Count" за тези колони т.е. при тази информация в клетката да ми излиза 2/2/2.....