Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.

Просмотр сообщений

Темы - Tow

#1
Здравствуйте, нужна помощь, как в колонтитуле макросом прибавить к страницы значение из ячейки нужно к этому
страница &P" прибавить ячейку из листа "Титульник" ячейка "V1". Вот макрос:
Sub Колонтитулы_Протокол()
Application.ScreenUpdating = False
   Sheets("Протокол").Select
   Range("V1").Select
   ActiveCell.FormulaR1C1 = "=страниц_на_листе_ПРОТ"
   Range("V1").Select
   Selection.Copy
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
       With ActiveSheet.PageSetup
       .LeftFooter = [Q1] & ". Общее количество страниц " & [T1] & ", страница &P"
  End With
   Sheets("Титульник").Select
   Range("V1").Select
   ActiveCell.FormulaR1C1 = "=страниц_на_листе_ТИТ"
   Range("V1").Select
   Selection.Copy
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
       With ActiveSheet.PageSetup
       .LeftFooter = [Q1] & ". Общее количество страниц " & [T1] & ", страница &P"
  End With
   Application.ScreenUpdating = True
End Sub

Помогите пожалуйста.
#2
Помогите в следующем вопросе. Как скопировать данные из-за крытой книги вместе с формулами и форматами. в ниже приведенном коде?

Sub Get_Value_From_Close_Book()
   Dim sShName As String, sAddress As String, vData
   'Отключаем обновление экрана
   Application.ScreenUpdating = False
   Workbooks.Open "C:\Documents and Settings\Книга1.xls" '"
   sAddress = "A1:C100" 'или одна ячейка - "A1"
   'получаем значение
   vData = Sheets("Лист1").Range(sAddress).Value
   ActiveWorkbook.Close False
   'Записываем данные на активный лист книги,
   'с которой запустили макрос
   If IsArray(vData) Then
       [A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData
   Else
       [A1] = vData
   End If
   'если надо копировать ячейки с форматами,
   'то можно использовать стандартные методы копирования вставки
   'objCloseBook.Sheets("Лист1").Range(sAddress).Copy
   '[A1].PasteSpecial xlPasteValues  'вставляем значения
   '[A1].PasteSpecial xlPasteFormats 'вставляем форматы
   'Включаем обновление экрана
   Application.ScreenUpdating = True
End Sub


[admin]Коды оформляйте тегами VBCode. п.п. 4.25 Правил форума[/admin]
#3
Здравствуйте, пытаюсь применить для себя Ваш макрос изменив "A2:A51" на "C2:C51", но почему то при запросе данных выдает диапазон "$A:$AY"?, а если другие столбцы то работает. Что делаю не так?
Sub Extract_Unique()
    Dim x, avArr, li As Long
    Dim avVals
    Dim rVals As Range, rResultCell As Range

    On Error Resume Next
    'запрашиваем адрес ячеек для выбора уникальных значений
    Set rVals = Application.InputBox("Укажите диапазон ячеек для выборки уникальных значений", "Запрос данных", "A2:A51", Type:=8)
    If rVals Is Nothing Then 'если нажата кнопка Отмена
        Exit Sub
    End If
    'если указана только одна ячейка - нет смысла выбирать
    If rVals.Count = 1 Then
        MsgBox "Для отбора уникальных значений требуется указать более одной ячейки", vbInformation, "www.excel-vba.ru"
        Exit Sub
    End If
    'отсекаем пустые строки и столбцы вне рабочего диапазона
    Set rVals = Intersect(rVals, rVals.Parent.UsedRange)
    'если указаны только пустые ячейки вне рабочего диапазона
    If rVals Is Nothing Then
        MsgBox "Недостаточно данных для выбора значений", vbInformation, "www.excel-vba.ru"
        Exit Sub
    End If
    avVals = rVals.Value
    'запрашиваем ячейку для вывода результата
    Set rResultCell = Application.InputBox("Укажите ячейку для вставки отобранных уникальных значений", "Запрос данных", "E2", Type:=8)
    If rResultCell Is Nothing Then 'если нажата кнопка Отмена
        Exit Sub
    End If
    'определяем максимально возможную размерность массива для результата
    ReDim avArr(1 To Rows.Count, 1 To 1)
    'при помощи объекта Коллекции(Collection)
    'отбираем только уникальные записи,
    'т.к. Коллекции не могут содержать повторяющиеся значения
    With New Collection
        On Error Resume Next
        For Each x In avVals
            If Len(CStr(x)) Then 'пропускаем пустые ячейки
                .Add x, CStr(x) 'если добавляемый элемент уже есть в Коллекции - возникнет ошибка
                'если же ошибки нет - такое значение еще не внесено,
                'добавляем в результирующий массив
                If Err = 0 Then
                    li = li + 1
                    avArr(li, 1) = x
                Else
                    'обязательно очищаем объект Ошибки
                    Err.Clear
                End If
            End If
        Next
    End With
    'записываем результат на лист, начиная с указанной ячейки
    If li Then rResultCell.Cells(1, 1).Resize(li).Value = avArr
End Sub
#4
Здравствуйте, помогите решить проблему. У меня есть Таблица "База данных" в которой хранится информация, и есть таблица "Отправка" в которую я вношу информацию, чтобы отправить ее в таблицу "База данных", но вот, что нужно. Например:
1. В таблице "Отправка" , лист "Инф", я выделяю строку "197". Это может быть любая строка;
2. Вызываю скрипт;
3. Скрипт должен взять данные из ячейки "A197". Так как я выделил строку "197";
4. Найти их в таблице "База данных", лист "договора", столбец "A:A". Пускай, это будет ячейка "A1203", это может быть любая найденная ячейка столбца "A:A";
5. И если нашел. То должен скопировать из таблице "Отправка" , лист "Инф", строку "197", с ЗАМЕНОЙ в таблицу "База данных" строку "1203".
#5
Здравствуйте, подскажите мне пожалуйста. Есть ли возможность запустить скриптом триггер? Ситуация, такая скриптом копирую информация с "листа1" с " таблицы1", в "листа2" с " таблицы2", создал триггер на "редактирование" в "таблицы2", но он не реагирует на копирование скрипта с "таблицы1", создал триггер н изменении тоже самое. А если скопировать в ручную, то срабатывает. Если создавать триггер на время, то нужно чтобы срабатывал каждую минуту, в моем случае не подходит, т.к будет  около 30 триггеров, они могут запускаться одновременно, в таком случае будет каша.  Я так понял триггер не видит работу скрипта, а как сделать, чтобы заметил???
#6
Пытаюсь повесить код на событие "Лист1", т.е после ввода определенного логина и пароля у меня открывается "Лист1", и на открытие "Лист1", должен срабатывать во этот код
Private Sub Worksheet_Deactivate()  
Unload UserForm1  
End Sub  
 
Private Sub Worksheet_Activate()  
'Закрываете , открываете что хотите  
UserForm1.Show (0)  
End Sub  

т.е при переходи на "Лист1", должен запускать UserForm1, но выдает ошибку
UserForm1.Show (0)  
#7
На вашем сайте я нашел, очень интересную статью "ДОСТУП ПОЛЬЗОВАТЕЛЮ К ОПРЕДЕЛЕННЫМ ЛИСТАМ И ВОЗМОЖНОСТЬ ИЗМЕНЯТЬ ТОЛЬКО ОТДЕЛЬНЫЕ ЯЧЕЙКИ" вот ссылка https://www.excel-vba.ru/chto-umeet-excel/kazhdomu-polzovatelyu-svoj-listdiapazon/comment-page-8/#comments. Вопрос, как сделать на форме, чтобы был скрыт вводимый пароль (*****),  и галочку, которая давала бы возможность показать или скрыть вводимый пароль??
Яндекс.Метрика Рейтинг@Mail.ru