k0st4din Публикувано Ноември 27, 2012 Report Share Публикувано Ноември 27, 2012 Здравей,имам още едно питане - започваш процедурата търсене, след като ги намери какво да се случва; да ти изпише къде се намират, да ти отвори работните книги, подай ми още малко помощ, не мога да чета мисли.Благодаря Цитирай Link to comment Сподели другаде More sharing options...
Vanka Публикувано Ноември 27, 2012 Report Share Публикувано Ноември 27, 2012 Трябва ми да знам в кои работни книги се намира търсената информация (работните книги са разделени по различни критерии), работните книги ще бъдат отворени. Цитирай Link to comment Сподели другаде More sharing options...
k0st4din Публикувано Ноември 28, 2012 Report Share Публикувано Ноември 28, 2012 Здравей Vanka, решението на твоят проблем с търсене в много отворени екселски файлове и намиращите се в тях Sheet-тове е тази приставка, която се внедрява в ексел лентата и се внедрява в Add-ins. В последствие имаш иконка, след натискането се появява следният прозорец(прикачен е като снимка) и отваряш всички файлове, след което започва търсенето и показването къде се намира търсеното нещо от твоя страна. Във файлът има обяснено как да се инсталира и как да се премахне, но е на английски език(ако желаеш ще ти го преведа).Инсталация:- Отворете файла Zip- Разархивирайте всички файлове от Zip файл в една директория.- Затворете Zip файл- Отидете до директорията, в която сте разархивирали файловете на- Отворете файл, наречен "Setup Flexfind.xls". Уверете се, че сте разрешили макросите.- Натиснете върху бутона за инсталиране.---------------------------------------------------------------------------------------------------------------------------------------------Премахване:Инсталационният файл включва и опция за премахване. Ако това се провали, следвайте тези инструкции.- Отваряте Excel- Изберете Tools -> Add-ins- Махнете отметката "Flexible Find & Replace Utility"- Затвори Excel- Отворете прозорците Търсене на файлове или папки диалогови (натиснете прозорците ключ в комбинация с буквата F или щракнете върху Старт, да намерите, файлове или папки)- Търсене за "flexfind.xla"- Изтриване на всички файлове отговарящи на името "flexfind.xla"- Стартирайте Excel отново- Изберете Tools -> Add-ins- Опитайте се да проверите "Flexible Find & Replace Utility"- Excel го е премахнал от Add-ins в списъка.И НАЙ-ВАЖНОТО ТАЗИ ПРИСТАВКА Е НАПЪЛНО БЕЗПЛАТНАflexfind2007.zip Цитирай Link to comment Сподели другаде More sharing options...
Vanka Публикувано Ноември 28, 2012 Report Share Публикувано Ноември 28, 2012 Благодаря ти много, предполагам точно това ще ми свърши работа, но понеже не съм администратор на компютъра не ми е позволено да правя каквито и да е било инсталации и промени, ще видя какво мога да измисля. Цитирай Link to comment Сподели другаде More sharing options...
Vanka Публикувано Ноември 28, 2012 Report Share Публикувано Ноември 28, 2012 Всъщност получи се, изтеглих версията за ексел 2003 и тръгна. Много е удобно, спестява много време Цитирай Link to comment Сподели другаде More sharing options...
k0st4din Публикувано Ноември 28, 2012 Report Share Публикувано Ноември 28, 2012 Здравейняма как да не се получи, то е макрос, само дето се инсталира сам, което не води до администраторски права на даден компютър. Ползвай я със здраве!Поздрави Цитирай Link to comment Сподели другаде More sharing options...
fantomasbg Публикувано Ноември 29, 2012 Report Share Публикувано Ноември 29, 2012 Здравейте!Искам малко помощ от някой, който е запознат с макроси в ексел.Имам направена таблица на ексел с много шийтове. Един основен (BD), на който се пишат данните и по един на всеки доставчик (1000; 2000; 3000; 4000).От шийт BD искам да автоматизирам процеса и да разхвърля всичко натрупано от D42:BB2042 до момента за всеки отделен доставчик Е42:Е2042 и всичко това да отиде по съответните му шийтове 1000; 2000; 3000; 4000 отново на D42:BB2042.Да знам, че може да става с филтриране и да си ги прехвърля ръчно но не са само 4 шийта, а към 50 и за това съм решен да стане по лесния начин.Ако има някой, който може да ми помогне с кода ще съм му изключително благодарен.XFILE.xls Цитирай Link to comment Сподели другаде More sharing options...
k0st4din Публикувано Ноември 30, 2012 Report Share Публикувано Ноември 30, 2012 Здравей fantomasbg,Ето го решението на задачката:Ще видиш във файлът че имаш 2 sheet-a единият е твоят BD и още един съм направил, който не изтривай или ако ще вземеш Макроса за да го поставиш на друго място, то тогава копирай Sheeta(Template) на другото място.Следващото нещо:Там където са ти номерата - 1000, 2000, 3000 и т.н - съм ти поставил по 1 BD, за да може да ти различава в кой Sheet да отива информацията.Следващото нещо - Недей да правиш 50 шийта с имената на тези 1000, 2000(по ново му BD 1000, BD 2000 и т.н). Когато натиснеш бутона за изпращане на информацията ексел САМ ще си направи имената. След което ще ти натрупва всичко написано във всеки отделен и отговарящ на името си шийт. Option Explicit Option Base 1 Sub ContractList() Application.ScreenUpdating = False Dim AllCells As Range Dim cell As Range, Rng As Range Dim NoDupes As New Collection Dim lrow As Long, Rlrow As Long Dim Myval As Integer Dim wks As Worksheet Dim Item As Variant Dim Hdrarray As Variant Dim cnt As Long Dim Ctempws As Worksheet Set Ctempws = Sheets("Template") lrow = Sheets("BD").Range("E15536").End(xlUp).Row Set AllCells = Range("E42:E" & lrow) For Each cell In AllCells On Error Resume Next NoDupes.Add cell.Value, CStr(cell.Value) Next cell On Error GoTo 0 For Each Item In NoDupes Range("D41:BB41").Select Selection.AutoFilter With Selection .AutoFilter Field:=2, Criteria1:=Item End With Set Rng = ActiveSheet.AutoFilter.Range Myval = Range("E42:E" & lrow).SpecialCells(xlCellTypeVisible).Count On Error Resume Next Rlrow = Sheets(Item).Range("E15536").End(xlUp).Row + 1 If Err = 9 Then Ctempws.Copy after:=Worksheets(Worksheets.Count) ActiveSheet.Name = Item With Sheets(Item) Rlrow = .Range("D15536").End(xlUp).Row + 1 Rng.Offset(1, 0).Resize(Rng.Rows.Count - 1).Copy .Cells(Rlrow, 4).PasteSpecial xlValue Application.CutCopyMode = xlCopy Sheets(Item).Cells.EntireColumn.AutoFit Sheets(Item).Range("D41").Select Sheets("BD").Activate End With Else Rng.Offset(1, 0).Resize(Rng.Rows.Count - 1).Copy Sheets(Item).Cells(Rlrow, 4).PasteSpecial xlValue Sheets(Item).Cells.EntireColumn.AutoFit Sheets(Item).Range("D41").Select Application.CutCopyMode = xlCopy End If Next Item Selection.AutoFilter End Sub ПоздравиXFILE(1).xls Цитирай Link to comment Сподели другаде More sharing options...
fantomasbg Публикувано Ноември 30, 2012 Report Share Публикувано Ноември 30, 2012 Благодаря ти k0st4din!..... изключително много.Сега ще изтегля файла и изпробвам. По късничко ще споделя инфо. Цитирай Link to comment Сподели другаде More sharing options...
fantomasbg Публикувано Ноември 30, 2012 Report Share Публикувано Ноември 30, 2012 k0st4din!, перфектно си разработил макроса. Но дали може да стане така, че шийтовете на доставчиците да са постоянни, а не да се създават в момента на прехвърлянето. Т.к. от тези шийтове се дърпат данни в друг файл, а той търси всички шийтове на доставчиците дори да няма данни за тях и дава грешки в другия файл. Цитирай Link to comment Сподели другаде More sharing options...
k0st4din Публикувано Ноември 30, 2012 Report Share Публикувано Ноември 30, 2012 Тогава ги допиши ръчно и макроса ще го разчете, като "Този шийт го има и трябва само да добавя това което съдържа" и си готов.BD 3000, BD4000, BD 5000, BD 6000 и т.н......................Поздрави Цитирай Link to comment Сподели другаде More sharing options...
fantomasbg Публикувано Декември 1, 2012 Report Share Публикувано Декември 1, 2012 Тогава ги допиши ръчно и макроса ще го разчете, като "Този шийт го има и трябва само да добавя това което съдържа" и си готов.BD 3000, BD4000, BD 5000, BD 6000 и т.н......................Поздрави Имам един проблем, когато има шийт на доставчик прехвърляните данни не започват от начало, а се натрупват под данните от предното прехвърляне и се повтарят, колкото пъти натиснеш бутона.И другото, което забелязах след шийт "BD 1000" прехвърля всички данни от BD в тях BD 2000, 3000, 4000 ............При ръчно създаден шийт на доставчик прехвърля отново всички данни от BD в него.Това дали може да се избегне? Цитирай Link to comment Сподели другаде More sharing options...
k0st4din Публикувано Декември 1, 2012 Report Share Публикувано Декември 1, 2012 Здравей,извинявай, но ще се наложи да го напиша отново, ЗАЩОТО ЯВНО НИКОЙ НЕ ЧЕТЕ НАПИСАНОТО ОТ МЕН В ЧЕРВЕНО. нали се сещаш, че няма начин да знам точно какво иска всеки нуждаещ се.Защото: Питания от сорта, ще може ли да направите еди какво си? И някой от форума помогне. След това се започва: А дали ще може още малко да се направи еди какво си, а след него пък се случва не знам си какво и т.н.Подчертавам - И НА МЕН МИ СЕ Е СЛУЧВАЛО ДА СЕ НУЖДАЯ ОТ ПОМОЩ, НО НИКОГА НЕ СЪМ ПИТАЛ ПО БЕЗБРОЙ ПЪТИ. Обяснявам от какво имам нужда, за да бъде напълно ясно какви са моите нужди, в даденият ми проблем.относно твоето питане: [/b]От шийт BD искам да автоматизирам процеса и да разхвърля всичко натрупано от D42:BB2042 до момента за всеки отделен доставчик Е42:Е2042 и всичко това да отиде по съответните му шийтове 1000; 2000; 3000; 4000 отново на D42:BB2042[b] - как според теб как мога да се сетя, по колко пъти натискаш бутона? Откъде мога да знам, че не искаш да се натрупва информацията? Няма начин да ти прехвърля инфото например BD 1000, да ти отиде в BD 2000, BD 3000 или където и да било. Преди да ти го изпратя съм го пробвал достатъчно пъти, за да видя че всичко е наред, за да може потребителят(в случая ти) да не се занимавате с грешки, а да остане доволен.И за да докажа, че съм прав, прикачам файл, на всеки един шийт заедно с главният BD за да видиш, че нямаш никакви повторения в нито един шийт отговарящ на своя "код" (ако може така да го нарека - BD ..............)Поздрави Цитирай Link to comment Сподели другаде More sharing options...
fantomasbg Публикувано Декември 2, 2012 Report Share Публикувано Декември 2, 2012 Благодаря за помоща, k0st4din! Цитирай Link to comment Сподели другаде More sharing options...
krasimirson Публикувано Декември 4, 2012 Report Share Публикувано Декември 4, 2012 Здравейте! Ще помоля за малко помощ при Microsoft Excel-a. Имам да правя курсова работа и от два дена мъча една формула безуспешно. Ще кача файла и снимка на условието. Благодарен ще съм на всякакви отзиви и предложения. Снимка с условието: http://prikachi.com/images/150/5568150P.jpgЛинк за сваляне на файла: http://dox.bg/files/dw?a=fa53e45cb2 Формулата, по която би трябвало да се изведат числата съм я написал в клетка G8, но получавам грешката "#VALUE!". Цитирай Link to comment Сподели другаде More sharing options...
Препоръчан пост