{quote}{login=Казанский}{date=01.04.2011 09:36}{thema=}{post}Установил экспериментальным путем, что Worksheet.ShowDataForm Method работает, если перед таблицей находится не более 1 пустой строки и не более 1 пустого столбца. Т.е. таблица должна начинаться с А1, А2, В1 или В2. Иначе ошибка.{/post}{/quote}
Здраствуйте, проблема с датаформ, скажем имеем таблицу, делаем клик в заголовке потом идем и нажимаем на кнопку датаформ, это все записав на макрос, но потом етот макрос не работает, почему???
Sub Macro1() Range("B4").Select ActiveSheet.ShowDataForm End Sub
{quote}{login=VovaK}{date=31.03.2011 09:38}{thema=}{post}Просто совет. ЛеСагра у вас 34 одинаковых процедуры. Из них можно сделать одну. На скрытом листе в две колоночки укажите имена листов и Веб адреса. В процедуре циклом For Each Каждая_Cell in Соответствующий_Range Sheets.Add ActiveSheet.Name = Каждая_Cell.Value With ActiveSheet.QueryTables.Add(Connection:= _ Каждая_Cell.Offset(0,1).Value _ , Destination:=Range("A1")) End With Next создадите все листы. То же, но компактно.{/post}{/quote}
здравствуйте! Неподскажите как совместить формат ячейки для Времени и даты? дело в том что туда ставятся данные с веб консульты, а там или дата или время, тоеcть нельзя выбрать формат дата + время, ибо дата будет 1-1901 и время правильно, а если есть дата то нету времени:(( как-бы это совместит???
{quote}{login=}{date=30.03.2011 06:09}{thema=}{post}то же самое, но с игнорированием предупреждений Excel:
sub SheetDelete(s as string) dim ws as worksheet on error goto not_exist application.displayalerts=false set ws=activeworkbook.worksheets(s) ws.delete not_exist: application.displayalerts=true end sub{/post}{/quote}
{quote}{login=ikki}{date=30.03.2011 09:59}{thema=}{post}а какую ошибку? и, заодно, для какого типа фигур?
пс. ЛеСагра, а вы в своих темах почему не отписываетесь - устраивают вас предложенные решения или весь форум должен продолжать поиски грааля?{/post}{/quote}
автофигура Триугольник, с именами все хорошо у них. как нажимаеш то выдает ошибке и если нажать "дебуг" то ведет в строчку .раташин = 270, а если нажать "енд" то переварачивает как надо.
извините. только сегодня попал на форум, немог раньше зайте. в той теме где вы мен писали то я применил ваш вариант. Спасибо п.с. жаль тут нет такого как "посмотреть мои темы"
Ошибка: Поворот АвтоФигуры запрещен. ВБА маркос Добрый день! вот имею такой макрос, он как доходит до роташин = 270 то выдает ошибку. Подскажте :))
Sub Sort_Fecha() Dim PrimeraFila As Integer, PrimeraColumna As Integer Dim UltimaFila As Integer, UltimaColumna As Integer
PrimeraFila = 3 PrimeraColumna = 2
With Sheets("Datos") UltimaColumna = .Range("B3").End(xlToRight).Column UltimaFila = .Range("B3").End(xlDown).Row
NombreAvtofigura = "fecha" If .Shapes(NombreAvtofigura).Rotation = 0 Then .Range(Cells(PrimeraFila, PrimeraColumna), Cells(UltimaFila, UltimaColumna)).Sort key1:=.Range("R3"), order1:=xlDescending, header:=xlYes Else .Range(Cells(PrimeraFila, PrimeraColumna), Cells(UltimaFila, UltimaColumna)).Sort key1:=.Range("R3"), order1:=xlAscending, header:=xlYes End If End With Call Reset End Sub
Sub Reset() Dim Figura As Shape For Each Figura In Sheets("Datos").Shapes With Figura If .Name <> "Btn_Inicio" Then If .Name = NombreAvtofigura Then If .Rotation = 0 Then .Rotation = 180 .Fill.ForeColor.SchemeColor = 42 Else .Rotation = 0 .Fill.ForeColor.SchemeColor = 13 End If Else .Rotation = 270 .Fill.ForeColor.SchemeColor = 8 End If End If End With Next End Sub
Здравствуйте читатели! Образовалась следующая проблема: Как проверить существует ли лист в книге, и если существует то удалить eго?? имя листа передается глобальной переменной "Imya" Писать это все в ВБА. Спасибо
Веб-Консульты, Обновление Данных, Сбор данных с разных листов на один. Здравствуйте! Образовалась такая проблемка, нужно собрать данные с 30 листов на 1м листе, в документе имеем 34 макроса для получанения данных с веб-страничек, нужно написать еще один макрос который пройдется по всем листам(а именно только колонку Б(всю) с каждого листа) и скопирует это на лист под именем "ИТОГ" начиная "вставлять данные с Б2"(колонку А оставит свободную) и так далее, ячейка Б1 дойжна содержать имя листа откуда даные, в конце мы получим таблицу с 34 столбцами. Есть какая-то функция чтобы обновить сразу все консульты? или нужно по одной? как проверить существует ли консульта на листе? В примере попробую все "нарисовать" понятнее :))
{quote}{login=Юрий М}{date=25.03.2011 12:42}{thema=}{post}Вот в том и дело, что "нигде". См. пример - будет вращаться только та автофигура, по которой кликнули. И опять всего одна процедура.{/post}{/quote}
у вас тоже авто-фигуры поварачиваются в разные стороны, почему? ведь в ВБА 270º всегра одинаковы... я ошибаюсь?
Sub Reset() Dim x As Shape, iName As String iName = Application.Caller For Each x In ActiveSheet.Shapes With x If x.Name = iName Then If .Rotation = 180 Then .Rotation = 0 Else .Rotation = 180 End If Else .Rotation = 270 End If End With Next End Sub
{quote}{login=Юрий М}{date=25.03.2011 12:37}{thema=Re: Re: }{post}{quote}{login=ЛеСагра}{date=25.03.2011 12:25}{thema=Re: }{post}{quote}{login=Юрий М}{date=25.03.2011 12:02}{thema=}{post}{/post}{/quote}они скачут все, а нужно только ту на которую клацаеш. {/post}{/quote} А где Вы об этом раньше говорили? Покажите мне.{/post}{/quote} нигде, но в изначальном моем файле они так делают.
{quote}{login=Юрий М}{date=25.03.2011 12:02}{thema=}{post}:-) Я вот о чём - можно всё одной процедурой.{/post}{/quote} они скачут все, а нужно только ту на которую клацаеш. на ту на которую клацаеш крутится (на 180º) а остальные становятся в изначальное положение(0º)
{quote}{login=Юрий М}{date=25.03.2011 12:02}{thema=}{post}:-) Я вот о чём - можно всё одной процедурой.{/post}{/quote} Я думаю что короче этого уже дальше некуда :))
а вот если все усложнить и сказать что, та по которой клацаем пусть перевернется на 180º(на +180º к актуальному положению, тоесть если она стоит в 0º то после клика станет в 180, и наоборот), а остальные на 270º
If nom <> Ц.Name Then ActiveSheet.Shapes("autoforma1").Rotation = 0 End If в 1й строчке пишу. взять авто-фигуру autoforma1 пойти в ее свойство имя... тоесть 2 раза я прошёлся по ..Name, 1й рас как ее выбирал и 2й рас как сравниваю. вот и спрашивал существует ли другая форма обращается к авто-форме. в вашем примере вы мне показываете как избавится повторения ActiveSheet.Shapes("autoforma1") в каждом из макросов для авто-фигур, я просил обратит внимание именно на строки кода: If nom <> ActiveSheet.Shapes("autoforma1").Name Then ActiveSheet.Shapes("autoforma1").Rotation = 0 End If чтобы оптимизировать процедуру Ресет, вот ikki это понял и предложил как через фор пройти все авто-фигуры, вы мне с этим написали пример, Большое вам спасибо.
{quote}{login=Юрий М}{date=24.03.2011 08:09}{thema=}{post}Про "генерическое" имя ничего сказать не могу :-) Наверное, это просто трудности с русским. Ничего страшного. А вот так попробуйте: Sub Rote_AutoShape2() With ActiveSheet.Shapes("AutoShape 2") If .Rotation = 180 Then .Rotation = 0 Else .Rotation = 180 End If End With End Sub{/post}{/quote}
спасибо за подсказку, но так уже сделал. проблема у меня с Ресет: там много лишнего кода. скажем что когда обращаешься к листу всегда можно написать его имя: лист1.селл или шеет("имя листа1 измененное пользователем"), думал можно так с авто-формами, если можно было пробегать все авто-формы на листике, без писать их имя... чтобы убрать тону ИФ что у меня там есть.
Работа с автофигурами в ВБА посмотрите пожалуста на код и если можете дайте совет по оптимизации, просто в структуре: If nom <> ActiveSheet.Shapes("autoforma1").Name Then ActiveSheet.Shapes("autoforma1").Rotation = 0 End If строчку ActiveSheet.Shapes("autoforma1").Name можно на чтото заменить? ато кажетча что пишу 2 раза имя автофигуры. есть какоето генерическое имя для автофигур кроме того что мы ему присвоем?
Код: Sub Rote_Autoforma1() Call Reset("autoforma1") If ActiveSheet.Shapes("autoforma1").Rotation = 180 Then ActiveSheet.Shapes("autoforma1").Rotation = 0 Else ActiveSheet.Shapes("autoforma1").Rotation = 180 End If End Sub
Sub Rote_Autoforma2() Call Reset("autoforma2") If ActiveSheet.Shapes("autoforma2").Rotation = 180 Then ActiveSheet.Shapes("autoforma2").Rotation = 0 Else ActiveSheet.Shapes("autoforma2").Rotation = 180 End If End Sub
Sub Rote_Autoforma3() Call Reset("autoforma3") If ActiveSheet.Shapes("autoforma3").Rotation = 180 Then ActiveSheet.Shapes("autoforma3").Rotation = 0 Else ActiveSheet.Shapes("autoforma3").Rotation = 180 End If End Sub
Sub Reset(nom As String) If nom <> ActiveSheet.Shapes("autoforma1").Name Then ActiveSheet.Shapes("autoforma1").Rotation = 0 End If If nom <> ActiveSheet.Shapes("autoforma2").Name Then ActiveSheet.Shapes("autoforma2").Rotation = 0 End If If nom <> ActiveSheet.Shapes("autoforma3").Name Then ActiveSheet.Shapes("autoforma3").Rotation = 0 End If End Sub
ну если изминить значение компании на бирже в той иили иной день то график неакуален, хочется так: там где пишет макс значение для оси ОУ чтобы оно минялось по след формуле: МАКС число из строимого диапазона +20%; а минимальное значение оси ОУ чтобы было равно: 80% от МИНимального значения в строемом интервале(ранге). тоесть если строю 5 значения: 3 5 7 9 13, то в графе где пишет МАКс для ОУ было написано 13*1,2 и для минимальной чтобы бло написано 3*0,8, незнаю изясняюсь ли я правельно и понятно, спрашивйте если что нетак.
{quote}{login=kim}{date=24.03.2011 01:25}{thema=}{post}ЛеСагра, непонятно что такое "интервал неисползуемых значений" Отобрать значения по нужным Вам условиям можно, но подумайте: будет ли полученный график хоть немного напоминать полный? Вам же вроде масштабирование нужно было?{/post}{/quote}
скажем вы строите график фирмы на бирже, и ее значения напротяжении года находятся между 70-80, ексель вам строитт шкалу ОУ(ось ординат) от 0 до 80 и там ресует график, то что хочу чтобы он строил графу ОУ болиемение "подогнаную" под значения фирмы. ведь ето на графике будут появлятся много разных фирм и для каждой менять руками нету смысла, а вот еслибы автоматически??
При постройке Графика на оси ОУ, мы часто получаем интервал неисползуемых значений, еcли поправитьв ручную то при просмотре следующей компании нам прийдется делать тоже, ибо неувидим приввельно ее значений, можно както в ячейки с макс и ми значениями оси ОУ вставлять формулы типа =1,2 * МАКС заначения некого диапазона ?? и также для минимального?? = 0,8 * МИН значение екого диапазона??
{quote}{login=Юрий М}{date=22.03.2011 01:56}{thema=Re: }{post}{quote}{login=ЛеСагра}{date=22.03.2011 01:48}{thema=}{post}есть у кого пример построения Графиков в Визуале на листе??? {/post}{/quote} ЛеСагра, Вы изначально спрашивали про график на форме. Не отписались, а уже задаёте новый вопрос. Вас не интересуют ответы?{/post}{/quote}
Изменились "запросы" проекта, в етой же теме люди сказали "обезательно" на ЮзерФорм?" вот я и понял на просто лист, чтоб было проще.