Не получается сделать правильную гиперссылку на соседний лист, в нужную ячейку.
Надо, чтобы при нажатии на гиперссылку в ячейке столбца «А» листа «Ма-лы» программа переключалась бы на лист «СП» в нужную ячейку столбца «В», в которой забито точное наименование, точь-в-точь как и на ячейке с гиперссылкой.
Для примера, как должно работать, сделал гиперссылку в ячейках D1 и D2, указав в формуле конкретную ячейку переключения. А вот заменить в гиперссылке эту конкретную ячейку на ИНДЕКС+ПОИСКПОЗ не получается: выскакивает та или иная шибка, в зависимости от изменений в формуле. Для проверки функций ПОИСКПОЗ я выполнил в ячейках Н1 и Н2, а ИНДЕКС – в ячейках G1 и G2.
А в ячейке D5 – формула, с которой я мучаюсь, точнее, один из вариантов, которые я испробовал.
aDate = CDate("01.01.2023")
zDate = CDate("31.12.2024")
For i = lLastRow To 8 Step -1
If Not IsEmpty(Cells(i, Beg)) Then
If Cells(i, Beg) < aDate Then Cells(i, Beg).Interior.ColorIndex = 6
If Cells(i, Beg) > zDate Then Cells(i, Beg).Interior.ColorIndex = 3
End If
Next i
Здравствуйте! Представлен фрагмент кода, проверяющий, входят ли введённые пользователем даты в диапазон дат aDate-zDate. Если остановить макрос (Exit Sub) где-то внутри кода, то он останавливается после нахождения первой же неправильной даты. А мне надо проверить весь столбец, прежде, чем продолжить выполнение макроса. Вопрос: как остановить макрос после проверки всего столбца, чтобы цветом выделились все неправильные даты? Спасибо.
Здравствуйте! При такой записи формата цикл идёт так: 1.1, 1.2, ... 1.9, 2.0, 2.1... А мне нужно получить так: 1.1, 1.2, ...1.9, 1.10, 1.11, 1.12 ...1.99, 2.0, 2.1 Как записать формат, чтобы счёт после разделительной точки шёл более девяти? Спасибо. p.s. Добавление второго нуля в код не даёт нужного результата
Здравствуйте! Решая свою задачу (простановка в модели AutoCAD точек/блоков по координатам из Excel) длительным поиском по разным сайтам нашёл тему https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=12330 Увы, ссылка на программу "Text_Excel_ACad" уже не работает. Прошу помощи: у кого есть, выложите программу или подскажите рабочую ссылку. Пятой точкой чувствую: это именно то, или близко к тому, что мне нужно. Спасибо.
Здравствуйте! Помогите поправить коротенький макрос. При выделении несмежных ячеек в столбце он всё равно выдаёт содержание смежных. Как прописать условие "если ячейка выделена, то показать её содержание в форме msgbox, в противном случае - пропустить и продолжить цикл". Спасибо.
Здравствуйте! В приложенном файле (фрагмент дефектной ведомости) значения в ячейках столбца "J" являются результатом вычислений в ячейках столбца "K". Вопрос: возможно ли получить тот же результат автоматически, вычисляя данные из ячеек столбца "G" (объединённых ячеек столбцов "G", "H", "I")? Пытаюсь на упрощённом примере, в ячейке "L4" получить желаемое, используя необходимые функции. Здесь нужно игнорировать букву "м" и точку. И даже такой простой пример не выходит. А хочется, чтобы формула решала и такие, как в "G5" и "G6". Необходимо, чтобы итоговая формула игнорировала все знаки, включая пробелы, кроме цифр от нуля до девяти, четыре арифметических знака действия ("+", "-", "*", "/"), открывающей и закрывающей скобок, десятичной точки, десятичной запятой. Причём именно десятичной, игнорируя точку в конце текстов типа "шт." Хотелось бы решить задачу формулой, не прибегая к надстройкам (встречал такие в инете). Ну, крайний случай - VBA. Заранее благодарю всех откликнувшихся.
Здравствуйте! В моей диаграмме Ганта хочу сворачивать и разворачивать разделы, т.е. хочу сделать так, чтобы при активации одной и той же ячейки соответствующие строки то скрывались, то показывались, а в самой ячейке попеременно появлялся значок такой "[-]" или такой "[+]". С одной строкой, как частный случай, у меня получилось ( файл "проба-01"). А вот в цикле - никак не могу сообразить (файл "Проба-02). При активации ячейки "В7" должны скрываться (или появляться) все строки работ, по всей таблице. А при активации, например, ячейки "В13" должны скрываться/показываться работы, относящиеся только к разделу "Проектные работы". Прошу помощи, сам разобраться не могу уже почти сутки (с перерывом на обед и ужин).
В нём: начальная дата - dtmin (допустим, 16.4.2020) конечная дата - dtmax (допустим, 20.8.2020 разница между ними - dtDiff
Нижеприведённый код заполняет ячейки от dtmin до dtmax (со сдвигом на 10 ячеек, но это не суть важно):
Код
Plus = dtmin
For k = 10 To dtDiff + 10
With Cells(1, k)
.Value = Plus
.NumberFormat = "m/d/yyyy"
End With
Plus = Plus + 1
Next
Как получить заполнение ячеек: не от 16.4.2020 до 20.8.2020, а от 01.4.2020 до 31.8.2020, т.е. от начала начального месяца до конца конечного? Чувствую, что нужно задействовать функцию определения месяца month(dtmin) и month(dtmax) и использовать её при заполнении ячеек с первого числа апреля до конечного числа августа. Как конкретно - ума не приложу. Прошу помощи. Спасибо.
Здравствуйте! Помогите, пожалуйста, с "грамматикой" кода. Ваяю примерно так:
Код
Sub Start()
Dim i As Integer, j As Integer, a As Long, x As New Collection, y As Range, N As Long
N = CommandButton.Application.Caller
With Sheets(N)
...
нужно, чтобы макрос выполнялся на листе, одноимённом с названием кнопки CommandButton ActiveX (свойство "Caption"). Прошу помочь с определением переменной "N". Спасибо.
Здравствуйте! Пожалуйста, покажите, где ковырнуть в настройках, чтобы на мою почту приходили уведомления о новых ответах на посты, в которых я принимал участие.
Пока приходится ежедневно открывать форум и отслеживать "ручками". И есть ли функция "отписки" от конкретных постов, которые для меня уже утратили актуальность. Спасибо.
Здравствуйте! Как найти последнюю заполненную ячейку - есть много постов. А мне нужно найти адрес правой нижней ячейки диапазона, ограниченного рамкой. К примеру, рамка охватывает диапазон A1:G18. Макрос должен найти ячейку G18 или, лучше, первую ячейку вне диапазона - H19. (независимо, заполнена ячейка или пустая) Подскажите, пожалуйста, какие команды можно использовать, чтобы макрос опирался на расположение рамки. Спасибо. p.s. Если на листе несколько рамок, то ищется самая крайняя ячейка (пересечение - крайний правый столбец, имеющий хотя бы единственную обрамлённую ячейку, и такая же крайняя нижняя строка). p.p.s Догадываюсь, что нужно использовать слово "Borders", а как именно - ума не приложу.
прекрасно работал бы, если бы ячейка "end" была простой, а она в действительности состоит из объединённых ячеек. Ну и получается вот такая область печати, как на приложенной картинке. Угловой штамп не входит полностью в область печати. Попытался сделать что-то вроде:
Ан не получилось. Другие танцы с бубном - тоже. Как изменить строчку кода, чтобы область печати увеличилась на столбец вправо и на пару строк вниз? Догадываюсь, что нужно использовать MergeArea, но как - ума не приложу. Спасибо. _______________________________ Сам нашёл:
Код
Set Ma = Range("end").MergeArea
'MsgBox Ma.Address
Set rngEnd = Ma.Cells(Ma.Rows.Count, Ma.Columns.Count)
'MsgBox rngEnd.Address
ActiveSheet.PageSetup.PrintArea = Range("first", rngEnd).Address
Линейчатая с накоплением, и линейный график с узлами. Вот, которая "с накоплением", не получается, как отдельно расположенная правая диаграмма (или здесь: тынц ) Прошу помощи. _______________________ Добавляю: в идеале должно получаться, как Вар1 или Вар2 (отрисовал в автокаде, без цвета, но это не важно)
Здравствуйте! Возникла необходимость в Excel автоматизировать отображение стены здания в разрезе с указанием слоёв: штукатурка-кирпич-утеплитель-кирпич-штукатурка. Это как один вариант из множества. Необходимо, чтобы диаграмма располагалась, с вертикальными слоями (вложение "Диагр1") А она работает только как ("Диагр2"). Есть ли варианты поворота картинки как надо? Пусть даже неправильным, "кривым", способом. Работа в фотошопе исключается, так как диаграмма должна динамически меняться при изменении толщины/добавлении/убавлении количества слоёв. А, может быть, существует какой-нибудь макрос по моей теме? Подкиньте ссылку, пожалуйста. Спасибо. p.s. Office 2016. p.p.s в последующем на этот "пирог" будут накладываться линейные диаграммы распределения температуры по слоям для определения местонахождения точки росы (последнее написал для понимания тем, кто разбирается в теплотехнических расчётах зданий). И ещё: не обязательно диаграмма должна быть объёмной. Можно и 2D. -------------------------------------------- Только что пришла мысль: может быть, возможно не поворачивать диаграмму, а изменить толщину столбцов согласно данным, при одинаковой их высоте.
Здравствуйте! Дан прямоугольный диапазон ячеек, ограниченный рамкой, допустим, синего цвета (простыми словами - "форматка А4"). Точнее, их таких - несколько на листе. Расположены беспорядочно по всему листу. Число строк и столбцов в каждой форматке в ходе работы пользователь может менять - удалять и вставлять дополнительные. Как сделать, чтобы при запуске макроса, в верхнюю правую ячейку каждой форматки автоматически вставлялись номера страниц? Спасибо. p.s. точнее, я бы и сам разобрался со вставкой страниц (возможно), да только ума не приложу: как найти эту верхнюю правую ячейку циклом в каждой форматке. (а также: как объединить все ячейки верхней строки кроме правой ячейки). Как заставить программу определить границы всех форматок на листе? p.p.s так как кроме общей границы, в каждой форматке есть ещё линии углового штампа, то я специально выделил нужные (внешние) границы синим.
Здравствуйте! Всех с наступающим Новым годом! Пусть новогодний поросёнок (как-никак, год свиньи) обернётся для каждого полной копилкой в новом году! __________________________ Прошу помощи у знатоков уделить моей проблеме часть своего досуга. Есть прекрасный макрос, автоматом формирующий оглавление с нумерацией страниц очередного раздела (листа). Исходный файл с макросом взят отсюда В приложенном файле - мои "хотелки", а тут - вопросы, а именно: 1. Для чего нужен макрос Sub Printed_Pages_Count()? Я его удалял, и без него второй макрос прекрасно формирует оглавление. 2. Как отвязать наименование листа на его закладке от оглавления? Ну, чтобы наименования разделов в оглавлении брались из верхней левой ячейки каждого листа. В приложенном файле я организовал это формулой, но это не то, нужен именно макрос. 3. Как автоматом (макросом) проставить номера страниц в верхних правых ячейках каждой страницы (номера страниц показаны в листах красным в жёлтых ячейках)? Причём, при изменении ширины/высоты столбцов/строк, а также при их удалении/добавлении, - номера страниц также перемещались бы в новую правую верхнюю ячейку относительно границ печатной области каждой страницы. Я так думаю, нужно в макросе задействовать понятие границ страницы (или печатной области страницы), только вот не знаю, откуда это взять и как применить. Прошу помощи. Может у кого-то уже есть подобное. Или подкиньте ссылочку про это. Спасибо. p.s. При новом открытии файла границы печатной области страниц пропали, но, надеюсь, там всё понятно. p.p.s Забыл: существующий макрос добавляет страницы, с которыми соприкасаются ячейки с нумерацией. Как этого избежать?
Появилась необходимость вставить нумерацию не колонтитулом, а непосредственно в ячейке каждого листа, и надо сделать так, чтобы при копировании предыдущего листа, в той же ячейке листа последующего номер увеличивался бы на единицу. И вторым способом - чтобы номер страницы совпадал бы с названием данного листа. В приложенном файле ячейка с номером страницы закрашена розовым. Спасибо. p.s. а, может быть, у кого-то уже есть более удобные наработки по моему вопросу? Буду рад поучиться.
Здравствуйте! Взят готовый макрос (точнее, несколько) и почти заточен "под себя". Пиксели выбранной картинки раскладывает по ячейкам в виде кода RGB. Прикручен стандартный статус-бар (внизу слева). Прошу помочь ускорить работу, возможно организовав как-то массив, так как моя цель - конвертировать "тяжёлые" файлы изображений, например 6000x4000 пикселей. Пока терпения хватает на небольшие картинки (примерно 800х500). И ещё: если картинка не квадратная, а прямоугольная, конвертирование происходит неполное и с выводом ошибки. Почему? Спасибо. Сам файл прикрутить не могу: он почему-то весит порядка трёх МБ, хотя по количеству кода видно, что должен весить где-то 20-30 кБ. Вот код:
Код
Option Explicit
Public Sub AAA()
Dim pIF As New WIA.ImageFile
Dim pV As WIA.Vector
Dim IP As New WIA.ImageProcess
Dim last As Long
Dim iRow, iCol As Long
Dim h As Single, w As Single
Dim FileName As String
Dim c As Range, i&
Dim lr As Long
Dim lAllCnt As Long 'количество итераций
Const lMaxQuad As Long = 20 'длина статус-бара
FileName = Application.GetOpenFilename _
("Рисунки bmp,*.bmp,Файлы Excel,*.xls*,Текстовые файлы txt,*.txt,Рисунки jpg,*.jpg", , "Выбор файла")
pIF.LoadFile FileName
'pIF.LoadFile "c:\кекс.jpg"
Application.ScreenUpdating = False
Dim sh As Worksheet: Set sh = ActiveSheet
sh.UsedRange.Interior.ColorIndex = 0
IP.Filters.Add IP.FilterInfos("Scale").FilterID
IP.Filters(1).Properties("MaximumWidth") = CLng(pIF.Width)
IP.Filters(1).Properties("MaximumHeight") = CLng(pIF.Height)
'last = CLng(pIF.Width# * CDbl(pIF.Height) / CDbl(pIF.Width))
Set pIF = IP.Apply(pIF)
Set pV = pIF.ARGBData
'Stop
For iRow = 1 To pIF.Height
For iCol = 1 To pIF.Width
'Cells(iRow, iCol).Interior.Color = GetColor(pV, pIF.Width, iCol, iRow)
i = GetColor(pV, pIF.Width, iCol, iRow)
Cells(iRow, iCol).Value = Format$(i Mod 256, "000\,") & Format$((i Mod 65536) \ 256, "000\,") & Format$(i \ 65536, "000")
Next iCol
Application.StatusBar = "Выполнено: " & Int(100 * iRow / iCol) & "%" & String(CLng(lMaxQuad * iRow / iCol), ChrW(9724)) & String(lMaxQuad - CLng(lMaxQuad * iRow / iCol), ChrW(9723))
Next iRow
'Очищаем статус-бар от значений после выполнения
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub
Public Function GetColor(ByVal inVector As WIA.Vector, ByVal imgWidth As Long, ByVal xPixelID As Long, ByVal yPixelID As Long) As Long
Dim ToHex As String, vCount As Long
ToHex = VBA.Hex$(inVector(xPixelID + (yPixelID - 1&) * imgWidth))
vCount = VBA.Len(ToHex)
If vCount < 8 Then ToHex = VBA.String$(8 - vCount, "0") & ToHex
GetColor = VBA.RGB(CInt("&H" & VBA.Mid$(ToHex, 3, 2)), CInt("&H" & VBA.Mid$(ToHex, 5, 2)), CInt("&H" & VBA.Mid$(ToHex, 7, 2)))
End Function
Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _
Optional ByVal InitialPath As String = "c:\", _
Optional ByVal FilterDescription As String = "Книги Excel", _
Optional ByVal FilterExtention As String = "*.xls*") As String
On Error Resume Next
With Application.FileDialog(msoFileDialogOpen)
.ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
.Filters.Clear: .Filters.Add FilterDescription, FilterExtention
If .Show <> -1 Then Exit Function
GetFilePath = .SelectedItems(1): PS = Application.PathSeparator
End With
End Function
Здравствуйте! Есть программа конвертирования картинок в ячейки Excel попиксельно. Вот она: https://excelvba.ru/code/Bitmap2Sheet Во вложении (чуть ниже кодинга) можно скачать саму программу. Но максимальный размер картинки не превышает 200 пикс. Как увеличить размер картинок?
Просмотрел все строки макросов, не нашёл, за что зацепиться. Подозреваю, что здесь скрыт ещё один макрос, ограничивающий размер картинок. Или нет? Помогите, кто в теме. Спасибо.
Здравствуйте! Есть картинка расширением bmp. Подскажите, как сделать, чтобы на листе Excel в каждой ячейке каждый пиксел картинки был обозначен RGB-кодом, например вот так: 123, 022, 003. И обратно, чтобы, имея такую матрицу с RGB кодом, можно было создать картинку bmp. Я нашёл в интернете только конверторы, которые заливают ячейки таблицы тем же цветом, что и пикселы картинки. А мне нужно, чтобы в таблице была кодировка. Подскажите код VBA или дайте ссылку по теме.
Здравствуйте! Появилась необходимость скопировать определенные несвязанные строки из документа Word и вставить их в документ Excel, в разные ячейки.
В приложении: 1. файл Word - акт ОСР (освидетельствования скрытых работ), в котором красным выделено то, что я по очереди копирую "ручками". 2. файл Excel - реестр передачи актов, в котором красным выделено то, что я вставляю по очереди, тоже "ручками".
Бесит смена документов для копирования - вставки: Word-копирование, Excel-вставка... Можно ли как-то сделать, чтобы в Вордовском документе скопировать по очереди все тексты , а потом в реестре автоматом вставить в нужные ячейки? Важно: 1. шрифт в документе Excel иной, нежели в документе Word, поэтому приходится вставлять не в ячейке, а в строке формул. 2. Даты в реестре - в ином формате, нежели в Ворде.
Предполагаю, что надо как-то сформировать несколько буферов обмена по количеству копируемых текстов, чтобы потом вставить их содержимое в ячейки Excel.
Прошу помощи. p.s. У меня проблемы не было бы, формируй мы акты ОСР в Excel, но увы, никто из коллег не желает менять уже привычный Word на Excel. p.p.s Во время работы никакие иные документы, кроме этих двух, не открыты, поэтому в макросе можно не указывать конкретную директорию и название файла.
Здравствуйте! В нескольких макросах одной книги (и даже одного листа) есть довольно большая неизменяемая часть кода. Как оформить её (эту часть кода) отдельной функцией, чтобы в макросах просто одной строкой указать название функции внутри макроса, и макрос нормально работал? Такая фишка есть в веб-программировании - include. А в excel? Спасибо.
Представляю готовый шаблон для создания различных календарных графиков производства работ по модели Ганта, отдалённо напоминающий графики, выполняемые в MsProject, который есть не на каждом компьютере. Идея - моя, однако хочу подчеркнуть, что это - плод коллективного творчества форумчан, которые мне помогали, которым я благодарен и которые упомянуты в комментариях макросов. Разобраться несложно, а я ещё и подскажу. Итак:
Перед пользователем - записи, которые он вправе редактировать. Если какая-то работа занимает несколько строк и не помещается в ячейке - не беда, макрос автоматически увеличит высоту строки. Пользователь указывает длительность работы в днях (сутках), дату её начала и, если необходимо, процент выполнения (линия процента выполнения - зелёная, под голубой линией графика). И жмёт главную кнопку. Главная кнопка - центральная, с кружочком - "Обновить". Появляется готовый график с указанием месяцев в "шапке", дат и процентов выполнения в начале и конце каждой линии графика. Правая кнопка с крестиком - очистить график. Очищать график перед каждым обновлением не обязательно, достаточно просто обновлять. Левая кнопка с тремя горизонтальными штрихами - включение-выключение "зебры" для лучшей читабельности графика. Остальные четыре кнопки со стрелками - для расширения-сужения графика перед печатью, чтобы график хорошо "сел" на лист. Работа этих четырёх кнопок иногда визуально "заедает", но не из-за кривизны макроса, а из-за работы видеокарты компьютера. Иногда, чтобы увидеть движение строк или столбцов, нужно нажать соответствующую кнопку дважды или трижды. Все кнопки - не печатаемые, то есть ваш логотип (для примера - розовый прямоугольник с надписью "LOGO") будет хорошо виден. После всех действий с кнопками пользователь вправе нарисовать границы такие и так, как ему заблагорассудится. Важные правила: 1. Не редактировать скрытую первую строку - в её ячейках хранятся данные для работы макросов. 2. Макросы осуществляют циклы по строкам, начиная с 10-строки, поэтому нельзя удалять предыдущие строки, лучше аккуратно скрыть, переместив затем кнопки управления в удобное место. 3. Нельзя удалять или вставлять столбцы в диапазоне с первого по девятый. Для этой цели есть запрещающий макрос, но я его закомментировал. Кому нужно - включайте. 4. Между блоками (блоком я называю набор строк с содержанием "Объект №" и относящимися к нему работами) должна быть хотя бы одна пустая строка. Можно вставлять больше.
Всё. Пользуйтесь на здоровье! Код открытый, подстраивайте под себя! Критика - приветствуется, но не пустая, а с предложениями, добавлениями, усовершенствованиями, которые устранили бы эти четыре правила и добавили новые удобства. p.s. прошу модераторов рассмотреть мою просьбу о размещении этого шаблона в "Копилке идей". Надеюсь на положительное решение.
Здравствуйте! В файле (см. приложение) - график работ.
Правой кнопкой с крестиком можно очистить график (макрос Clean). Центральной кнопкой с кружочком - обновить (макрос Update). Самой левой кнопкой - включить-выключить "зебру" (макрос Zebra). Кнопками со стрелками - увеличиваем-уменьшаем строки и столбцы для нормальной печати
Теперь вопросы: 1. Работа номер 3 (ячейка D14) - её название значительно увеличивает высоту строки. Как изменить макрос Update, чтобы строки высотой, большей, чем остальные, увеличили свою высоту на нужное значение. Другими словами, как применить Autofit только для таких строк? Остальные строки не трогать?
2. Как изменить макросы HeightMore и HeightLess, чтобы они своей работой не затрагивали эти чрезмерно высокие строки? Напомню, что высота строк в макросе напрямую зависит от значения ячейки B1 (Cells(1,2)). Спасибо.
Здравствуйте! Посадил на кнопку макрос, включающий-выключающий "зебру". Но он (макрос) работает, ссылаясь на конкретную ячейку. Подскажите, пожалуйста, как сделать, чтобы макрос, сканируя по столбцу, найдя первую же залитую ячейку, выключал "зебру". А ещё лучше, - просто включал и выключал при каждом нажатии. Спасибо.
Код
Sub Zebra()
Application.ScreenUpdating = False
On Error Resume Next
With ActiveSheet
lc = Cells.SpecialCells(xlLastCell).Column
lr = Cells(Rows.Count, 1).End(xlUp).Row
'For f = 10 To lr
If Cells(12, 1).Interior.Pattern = xlSolid Then
Cells.Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Else
For I = 10 To lr Step 2
If Not IsEmpty(Cells(I, 6)) Then
With Range(Cells(I, 1), Cells(I, lc))
.Interior.ThemeColor = xlThemeColorAccent1
.Interior.TintAndShade = 0.799981688894314
End With
End If
Next I
End If
'f=f+1
'Next f
End With
Range("C1").Select
Application.ScreenUpdating = True
End Sub
Здравствуйте! В первой строке графика записаны последовательно даты. Как устроить цикл, по которому макрос сравнивает эти даты, находит ячейки с одинаковым месяцем-годом и объединяет соответствующие ячейки в седьмой строке, как показано на примере? Важно! даты не закреплены за ячейками, они меняются. Но всегда расположены в строгой календарной последовательности. Прошу помощи, у кого найдётся время. Спасибо. p.s. На всякий случай, для разноязычных компьютеров, я буду использовать массив с месяцами на русском языке: a = Array("январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь")
Здравствуйте! В приложении - шаблон графика строительных работ. Почти готовый и отдалённо похожий на графики, выполненные в MsProject (для того и делается, чтоб быть похожим, чтобы делать графики в Excel при отсутствии MsProject). Пользователь заполняет ячейки, которые остаются после нажатия кнопки "Очистить". Она, в принципе, не нужна, так как кнопка "Обновить" делает то же самое перед основной работой макроса. Мне необходимо вычислить минимальную и максимальную даты для каждого раздела в отдельности и вставить в соответствующие ячейки (выделил жёлтым), чтобы черные линии графика начинались с минимальной даты и заканчивались на максимальной. Подчёркиваю - по разделам. Для этой цели основной цикл перебора строк организован с конца таблицы. Если это неправильно с точки зрения "красоты кода" или чего-то иного - подскажите. Сам код с комментариями находится по (Alt+F11), на листе1. Проблемный блок кода выделен пунктирными границами. Прошу помощи: уже несколько вечеров мучаюсь. Пробовал Do-While-Loop, тоже не получилось, где-то "не догоняю". Возможно ли как-то задействовать Array, если это будет проще? Я сам не пробовал - "тёмный лес". И ещё: подскажите, как вставить SpinButton на лист таким образом, чтобы стрелки были развёрнуты влево-вправо, а не вверх-вниз? Благодарю всех откликнувшихся за участие в моей проблеме.
Здравствуйте! Прилагаю пока незаконченный график строительства. Здесь в пустых строчках (со второй по восьмую) будет "Шапка". Первая строка - будет скрыта. Сваял соответствующий макрос. Работает правильно, за исключением показа даты окончания работы правее каждой стрелки. Дата показывается решеткой. Я пробовал представить дату в строку (CStr), но не получилось.А объединять ячейки по длине даты нельзя. Прошу помощи: 1. какую запись и где вставить в макрос, чтобы дата окончания работ показывалась у острия стрелки с выравниванием слева. 2. какую запись и где вставить в макрос, чтобы дата начала работ показывалась у кружочка стрелки, с выравниванием справа. Спасибо. p.s. может ещё, кроме этого, посоветуете, как усовершенствовать, сократить макрос или, наоборот, что-нибудь добавить для его надёжной работы.
Здравствуйте! Существует ли такая функция: В ячейке А1 пишу только действия над числами, например, следующее (без знака =): (45-16)*2,1/(2,1+3,5) В ячейке В1 должен появиться результат: 10,875 Другими словами, мне нужно, чтобы в ячейке А1 были видны все действия над числами, а в ячейке В1 - только результат этих действий. Какую функцию (несколько функций) вписать в ячейку В1? Спасибо.