<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Excel скрипт сбора данных]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7284&amp;type=atom" />
	<updated>2012-06-20T07:53:08Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7284</id>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61039#p61039" />
			<content type="html"><![CDATA[<p>alexii спасибо, понял как работает и как им пользоваться и модернизировать!</p>]]></content>
			<author>
				<name><![CDATA[DRC]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28162</uri>
			</author>
			<updated>2012-06-20T07:53:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61039#p61039</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61037#p61037" />
			<content type="html"><![CDATA[<p><strong>DRC</strong>, немного поправил код:<br /></p><div class="codebox"><pre><code>Function FindMaterials(objCell As Range)
    Dim objRange As Range
    Dim strValue As String
    
    Application.Volatile
    
    strValue = &quot;&quot;
    
    For Each objRange In ThisWorkbook.Sheets.Item(&quot;Materials&quot;).UsedRange.Rows
        With objRange.Cells
            If .Item(1, 1).Value = objCell.Item(1, 1).Value Then
                strValue = strValue &amp; .Item(1, 2).Value &amp; &quot; &quot; &amp; .Item(1, 3).Value &amp; vbLf
            End If
        End With
    Next
    
    If Len(strValue) &lt;&gt; 0 Then
        strValue = Left(strValue, Len(strValue) - 1)
    End If
    
    FindMaterials = strValue
End Function</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-06-20T07:31:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61037#p61037</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61035#p61035" />
			<content type="html"><![CDATA[<p>alexii огромное спасибо! заработало! <br />очень-очень выручили!</p>]]></content>
			<author>
				<name><![CDATA[DRC]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28162</uri>
			</author>
			<updated>2012-06-20T06:41:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61035#p61035</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61032#p61032" />
			<content type="html"><![CDATA[<p>Одной формулой, конечно, можно сделать. Но формула будет просто гигантская и жёстко будет привязана к числу строк в исходном файле. Лучше использовать пользовательскую функцию.</p><p>Переименуйте рабочий лист с исходными данными в «Materials». Вставьте в рабочую книгу модуль. Добавьте в этот модуль подобный текст:<br /></p><div class="codebox"><pre><code>Option Explicit

Function FindMaterials(objCell As Range)
    Dim objRange As Range
    Dim strValue As String
    
    Application.Volatile
    
    strValue = &quot;&quot;
    
    For Each objRange In ThisWorkbook.Sheets.Item(&quot;Materials&quot;).UsedRange.Rows
        With objRange.Cells
            If .Item(1, 1).Value = objCell.Item(1, 1).Value Then
                strValue = strValue &amp; .Item(1, 2).Value &amp; &quot; &quot; &amp; .Item(1, 3).Value &amp; vbLf
            End If
        End With
    Next
    
    strValue = Left(strValue, Len(strValue) - 1)
    
    FindMaterials = strValue
End Function</code></pre></div><p>Используйте указанную пользовательскую функцию на рабочем листе в ячейках второго столбца, указав аргументом пользовательской функции ячейку, содержимое которой будет искаться в первом столбце переименованного листа «Materials», например:<br /></p><div class="codebox"><pre><code>=FindMaterials(A1)</code></pre></div><p>P.S. Если не совладаете — пишите, выложу готовый пример.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-06-20T06:25:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61032#p61032</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61028#p61028" />
			<content type="html"><![CDATA[<p>alexii, список на первом листе сделан просто для удобства - в принципе в данной ячейке можно название и в ручную ввести - главное, что при выборе скажем &quot;объект1&quot; в соседнюю ячейку записались все данные из столбца 2 и 3 второго листа соответствующие всем записям с названием &quot;объект1&quot;.</p><p>А у меня тупик, вообще не могу понять как это можно сделать...</p><p>если выбирать одно значение то формула <br /></p><div class="codebox"><pre><code>=ЕСЛИОШИБКА(ВПР(Лист1!А1;Лист2!А:С;2;0);&quot;&quot;)</code></pre></div><p>работает и устраивает на 100%, но цель что бы объединяло все данные</p>]]></content>
			<author>
				<name><![CDATA[DRC]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28162</uri>
			</author>
			<updated>2012-06-20T05:00:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61028#p61028</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61018#p61018" />
			<content type="html"><![CDATA[<p>Как Вы предлагаете пользователю отличать их? У меня, например, список подстановки на листе «Лист1» отображается в виде:<br /></p><div class="quotebox"><blockquote><div class="codebox"><pre><code>объект1
объект1
объект1
объект2
объект2
объект2
объект3
объект3
объект3</code></pre></div></blockquote></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-06-19T19:00:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61018#p61018</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61016#p61016" />
			<content type="html"><![CDATA[<p>alexii потому, что для одного объекта может быть несколько видом материалов и соответственно сертификатов к ним</p>]]></content>
			<author>
				<name><![CDATA[DRC]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28162</uri>
			</author>
			<updated>2012-06-19T18:54:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61016#p61016</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61005#p61005" />
			<content type="html"><![CDATA[<p>Почему у Вас в примере повторяются значения в ключевом поле, по которому осуществляется выбор («ОбъектXX») — на листе «mat»?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-06-19T16:07:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61005#p61005</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60991#p60991" />
			<content type="html"><![CDATA[<p><strong>alexii</strong> если я правильно то по ссылке ниже пример того, что я сделал.<br /><a href="http://download10.files.mail.ru/7ELT3F/bec0b524ddcf78c46f85066d70f25767/primer.7zurl">пример</a><br /> к листу два привязан текстовый документ mat</p>]]></content>
			<author>
				<name><![CDATA[DRC]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28162</uri>
			</author>
			<updated>2012-06-19T04:52:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60991#p60991</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60988#p60988" />
			<content type="html"><![CDATA[<p><strong>DRC</strong>, без исходных данных внятного разговора не получится.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-06-19T02:23:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60988#p60988</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Excel скрипт сбора данных]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60984#p60984" />
			<content type="html"><![CDATA[<p>Доброго времени суток!<br />Столкнулся с проблемой создания скрипта в Excel, к сожалению в этом практически ничего не понимаю, поэтому прошу помощи, очень хочу разобраться как же это сделать можно.</p><p>Есть файл Excel в котором два листа: первый лист таблица, на второй лист привязан тестовый документ с данными которые записываются на второй лист в три столбца: название объекта - материал - паспорт<br />Смысл в том что бы при определенном значении одной из ячеек на листе 1 (название объекта) в соседнюю ячейку записывались все значения материалов и паспортов соответствующие с листа 2 соответствующие объекту.</p><p>подсказали вот такой скрипт:<br /></p><div class="codebox"><pre><code>Public Function ListByDate(cDate, rLookupRange,iReturnCol1, iReturnCol2)
iRowCount = rLookupRange.sheet.usedrange.rows.count
ListByDate=&quot;&quot;
for each cell in rLookupRange.Columns(1).cells
if cell.value2=cDate.value2 then
ListByDate=ListByDate+cells(cell.row,iRe turnCol1)+cells(cell.row,iReturnCol2) = vbNewLine
end if
if cell.row&gt;iRowCount 
Exit function
End if
Next
End Function</code></pre></div><p>но он мне выдает ошибки при работе с ним.</p><p>Помогите разобраться.</p>]]></content>
			<author>
				<name><![CDATA[DRC]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28162</uri>
			</author>
			<updated>2012-06-18T20:40:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60984#p60984</id>
		</entry>
</feed>
