Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

сделать, чтоб при вводе текста в ячейку текст дублировался в другой ячейке

Автор Алексей Цуканов, 10.06.2014, 16:00

« назад - далее »

Алексей Цуканов

Понимаю, что просто, а вот сложить 2 и 2 не могу.
Надо сделать, что бы можно было на листе1 ввести фамилию а на листе 2 эта фамилия появилась в определенной ячейке. помогите советом.

cheshiki1

на листе 1 в ячейке А1 пишем фамилию.
на листе 2 в любой ячейке пишем ='Лист1!'$A$1

zs


Алексей Цуканов

Цитата: cheshiki1 от 10.06.2014, 23:45
на листе 1 в ячейке А1 пишем фамилию.
на листе 2 в любой ячейке пишем ='Лист1!'$A$1
Спасибо, только работает без кавычек. Как я и думал, все очень просто

lovko

А можно ли сделать то же через макрос и кнопку, чтобы эти фамилии выстраивались на Листе2 в столбце А последовательно друг за другом? Пишешь Иванов в А1 Листа1, нажимаешь на кнопку и фамилия отображается на Листе2 в ячейке А1. Потом пишешь Петров, фамилия уходит в А2. Пишешь Сидоров, а он в А3. Спасибо!

_Boroda_

Также все. Почти. Только формула такая:=Лист1!A1&""
Зачем кусок &""? Если в листе 1 в А1 значения нет, а на Листе 2 просто формула =А1, то она (формула) даст 0, а с куском &"" она даст пусто. Равносильно =ЕСЛИ(Лист1!A1="";"";Лист1!A1)
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

lovko

Нет, ребята, - нужен макрос. Значения я буду вводить только в одну ячейку: А1 Листа1. И из этой ячейки фамилии должны последовательно уходить на Лист2 и выстраиваться там в столбце А.
У меня есть такой макрос:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Address = "$A$1" Then
     Dim PS&
     PS = Sheets("Лист2").Range("A" & Rows.Count).End(xlUp).Row + 1
     Sheets("Ввод_инф").Cells(PS, 1) = Target
     Target.Value = Empty
  End If
  Application.EnableEvents = True
End Sub
но он срабатывает автоматически после ввода значения в ячейке А1 Листа1. А необходимо, чтобы выполнялся через кнопку, так как на самом деле значение в А1 Листа 1 я вводить не буду - там будет текстовая функция. Может, кто поможет? И еще важно, чтобы кнопка располагалась не на Листе1, не на Листе2, а на совершенно отдельном пустом листе, скажем Листе3. Спасибо!

lovko

Сделал ошибку в макросе, который привел выше. Вот правильный

Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Address = "$A$1" Then
     Dim PS&
     PS = Sheets("Лист2").Range("A" & Rows.Count).End(xlUp).Row + 1
     Sheets("Лист2").Cells(PS, 1) = Target
     Target.Value = Empty
  End If
  Application.EnableEvents = True
End Sub

cheshiki1

проверяйте
Sub kopija()
Dim i&
If Sheets("Лист1").Range("A1") <> "" Then
With Sheets("Лист2")
If .Cells(1, 1) = "" Then
i = .Cells(Rows.Count, 1).End(xlUp).Row
Else
i = .Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
.Cells(i, 1) = Sheets("Лист1").Range("A1").Value
End With
End If
End Sub

рисуйте любую кнопку на любом листе и цепляйте на неё код.

lovko