Новости:

Название темы должно отражать суть задачи.
Темы типа "ПОМОГИТЕ!!!", "Срочно!" и т.п. будут удаляться без объяснения причин

Главное меню

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

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

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

Сообщения - Tow

#1
Аууу vikttur, ну что поможете с моей проблемкой? Или не ждать ответа?
#2
Нет, не то у страницы получается статичное одно число. А нужно прибавить к странице, значение из ячейки. Например в обычном варианте получается "общее количество страниц 7 страница 1", а должно получится если значение ячейки "V1"=2, "общее количество страниц 7 страница 3", ну и соответственно следующие страницы уже должны пойти "общее количество страниц 7 страница 4" и т.д.
#3
Здравствуйте, нужна помощь, как в колонтитуле макросом прибавить к страницы значение из ячейки нужно к этому
страница &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

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

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]
#6
Да нет я разобрался, просто пользователь parovoz, очень сильно просил :'(, чтобы я его выложил :).
#8
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("Укажите диапазон ячеек для выборки уникальных значений", "Запрос данных", "C2:C51", 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("Укажите ячейку для вставки отобранных уникальных значений", "Запрос данных", "A2", 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

[admin]Коды оформляйте тегами VBCode. п.п. 4.25 Правил форума[/admin]
#9
Здравствуйте, пытаюсь применить для себя Ваш макрос изменив "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
#10
Здравствуйте, помогите решить проблему. У меня есть Таблица "База данных" в которой хранится информация, и есть таблица "Отправка" в которую я вношу информацию, чтобы отправить ее в таблицу "База данных", но вот, что нужно. Например:
1. В таблице "Отправка" , лист "Инф", я выделяю строку "197". Это может быть любая строка;
2. Вызываю скрипт;
3. Скрипт должен взять данные из ячейки "A197". Так как я выделил строку "197";
4. Найти их в таблице "База данных", лист "договора", столбец "A:A". Пускай, это будет ячейка "A1203", это может быть любая найденная ячейка столбца "A:A";
5. И если нашел. То должен скопировать из таблице "Отправка" , лист "Инф", строку "197", с ЗАМЕНОЙ в таблицу "База данных" строку "1203".
#11
Ни совсем понял вопрос. Для сотрудника никак не делаю "запрет доступа к Таблице3", да и нет такой функции запрет к таблице. Есть функция кому дать доступ к таблице. В моем случае сотрудник не знает про нее вообще. Единственное можно узнать, это зайти в скрипты "таблицы2" и там по ковыряться и найти, но опять же доступ он к ней не получит, даже если скопирует ссылку, ведь я не давал ему доступ.
#12
Вот так:
function Copyrrrr() {
  var sss = SpreadsheetApp.openById('указывае_адресс_с_какой_таблицы_копировать');
  var ss = sss.getSheetByName('указывае_имя_с_какого_листа_копировать');
 
  var from = ss; 
  var fromValues = from.getDataRange().getValues(); 
  var fromData = fromValues

  var tss = SpreadsheetApp.openById('указывае_адресс_в_какую_таблицу_копировать');
  var ts = tss.getSheetByName('указывае_имя_в_какой_лист_копировать');
 
     
  ts.getRange(ts.getLastRow() + 1, 1, fromData.length, fromData[0].length)
    .setValues(fromData);
    }
#13
Цитата: Дмитрий Щербаков(The_Prist) от 14.02.2020, 08:55:12
Если нет - то и триггер не сможет, т.к. ему так же будут переданы привилегии вызывающего пользователя.
А если да - то и триггер не нужен и заносить можно напрямую скриптом(открыть им нужную таблицу, внести данные и закрыть)
.
Вы очень сильно ошибаетесь триггер сможет занести данные из "таблицы2"  в "таблицы3", даже если у сотрудника не будет доступа и разрешения к ней. А чтобы скриптом занести данные из "таблицы2"  в "таблицы3, нужен доступ к ней  и разрешения к ней. Я бы не запаривался, тогда с "таблицы3". На практике проверил.
#14
Ну тогда нужно сотруднику давать доступ к "таблица3", а этого не нужно делать. Я же на писал "но доступ к "таблица3" у него нет, чтобы он не смог увидеть все данные в ней.", или я вас не правильно понимаю???
#15
У меня "таблица2" связующая с "таблицой3". Смысл в том, что сотруднику нужно отправить информацию из "таблица1" в "таблица3", но доступ к "таблица3" у него нет, чтобы он не смог увидеть все данные в ней. Поэтому у него есть доступ к "таблица2", а там уже работает триггер. Получается так с "таблица1" скриптом в "таблица2" триггером в "таблица3". А вот здесь можно по подробнее может ко мне подойдет "Можно попробовать идти от обратного: зачем Вам запускать триггер скриптом, если можно в скрипте все тоже самое и прописать?".
Яндекс.Метрика Рейтинг@Mail.ru