[ Ana99 @ 17.11.2004. 13:59 ] @
Zdravo svima,
nisam upucena u vb niti vba a treba da programiram sledece:
kada se otvori jedan prazan excel file, na njemu treba da budu dva "button-a"
Pritiskom prvog dugmeta treba da se otvori dialog iz koga se bira drugi excel file. iz drugog excel file treba da se ocitaju svi podaci od A1: AK19 i unesu u prazan excel file.
Ah, da u koloni C gde je u celijama malo n treba da bude uneto kao veliko slovo N u prazan excel file, a koloni M gde su celije prazne treba da bude unesen text "poslato" u
prazan excel file.
Pritiskom drugog dugmeta treba da se snimaju podaci iz nekoliko kolona ( ne po redu kao u excel filu ) u text file sa imenom ZE_ddmmyyyy.txt , ali samo pod uslovom dako je celilja K22 popunjena.
Nadam se da shvatate u cemu je problem.

Koje je najbolje resenje? Ima li nekog primera, posto je zaista hitno.

Hvala na odgovoru!!!
Ana
[ mladenovicz @ 17.11.2004. 14:25 ] @
Treba da koristis Excel Object Model. Imas Workbook, Worksheet, .. objekte. U helpu imas prilicno detaljno objasnjene ove stvari

Evo funkcije koji ide po excel workbooku, worksheetovima, vrstama, kolonama, ...

Code:

Option Explicit

Private Function ExtractWorkbookText(Doc As Excel.Workbook) As Boolean
    
    Dim WorksheetsNo    As Integer
    Dim RowsCount       As Long
    Dim ColumnsCount    As Long
    Dim StrResult       As String
    
    Dim i As Long
    Dim j As Long
    Dim z As Long
    
    WorksheetsNo = Doc.Worksheets.Count
    For i = 1 To WorksheetsNo
        RowsCount = Doc.Worksheets(i).UsedRange.Rows.Count
        ColumnsCount = Doc.Worksheets(i).UsedRange.Columns.Count
        For j = 1 To RowsCount
            StrResult = ""
            
            For z = 1 To ColumnsCount
                If StrResult <> "" Then StrResult = StrResult & ", "
                StrResult = StrResult & Doc.Worksheets(i).UsedRange.Cells(j, z)
            Next z
            
            '-- print current row to the debug.window
            Debug.Print StrResult
        Next j
    Next i
    
    ExtractWorkbookText = True
    
End Function


HTH
[ Ana99 @ 17.11.2004. 15:25 ] @
Zdravo,
ovako sam pocela, ali ne funkcionise. Umesto da sve podatke unese u prazno mapu, unosise samo neki tekst iz celije I50 u celiju A1 u praznu mapu. Sve ostalo ignorise. Mozete li mi reci gde gresim? Kako da nastavim?
Hvala puno

Code:

Sub Liste_laden()
    
    Application.DisplayAlerts = False
          
    MsgBox "Find ExcelFile!"
    
    MyExcelFile = Application.GetOpenFilename
    
     MsgBox "Die Datei wird nun importiert!"

    Application.ScreenUpdating = False
 
    Workbooks.Open FileName:=MyExcelFile
         
   MyExcelFile = ActiveWorkbook.Name

    Workbooks(MyExcelFile).Activate
    Selection.CurrentRegion.Select
    Selection.Copy
    Workbooks(MyExcelFile).Close
    Windows("import.xls").Activate
    Sheets("Myblatt").Select
    Range("A1:AJ19").Select
    Selection.PasteSpecial
    Selection.Columns.AutoFit
    Range("A1:AJ19").Select

    Application.ScreenUpdating = True

End Sub
[ mladenovicz @ 17.11.2004. 15:59 ] @
Ovo mi nije bas jaca strana, ali da probamo. ;)

Probaj da ovo

Code:

Selection.PasteSpecial


zamenis sa

Code:

Range("A1:AJ19").PasteSpecial


Generalno, resenje bi trebalo da izgleda ovako:

1. selekcija dela (range) koji treba prebaciti
2. Copy
3. selekcija dela (range) gde treba prepisati
4. paste
[ Ana99 @ 17.11.2004. 16:40 ] @
Hvala na odgovoru,
na zalost ne funktionise, osim sto je u praznoj mapi A1:AJ19 markirano , podati se ne unose.
Sta da radim? Upomoc!!!
[ mladenovicz @ 17.11.2004. 16:50 ] @
Je l mozes da postujes (upload uz poruku) Excel fajlove sa kojima radis?
[ Ana99 @ 17.11.2004. 17:11 ] @
Hvala na strpljenu!!! Zaista je hitno tako da mi je svaka pomoc dobrodosla
Ovako, nadam se da ces me razumeti:
otvaram jedan prazan excel import.xls file sa dva Button-a:
Imam Makro za Button1 Liste_Laden i u Modul1 imam samo taj kod koji sam tec poslala i koji treba da procita podatke iz export.xls
Za sada to je sve i ne funktionise.

Sub Liste_laden()

Application.DisplayAlerts = False

MsgBox "Find ExcelFile!"

MyExcelFile = Application.GetOpenFilename

MsgBox "Die Datei wird nun importiert!"

Application.ScreenUpdating = False

Workbooks.Open FileName:=MyExcelFile

MyExcelFile = ActiveWorkbook.Name

Workbooks(MyExcelFile).Activate
Selection.CurrentRegion.Select
Selection.Copy
Workbooks(MyExcelFile).Close
Windows("import.xls").Activate
Sheets("Myblatt").Select
Range("A1:AJ19").Select
Range("A1:AJ19").PasteSpecial
Selection.Columns.AutoFit
Range("A1:AJ19").Select

Application.ScreenUpdating = True

End Sub

[ mladenovicz @ 17.11.2004. 17:41 ] @
Izgleda da je problem nacin kreiranja rangea.

Ajde probaj ovako nesto

Code:

    Dim MyRange As Range
    Dim NewWB   As Workbook
        
    '-- selektuj i kopiraj range
    With ThisWorkbook.Worksheets(1)
        Set MyRange = .Range(.Cells(1, 1), .Cells(10, 10))
        MyRange.Copy
    End With
    
    '-- kreiraj novi workbook
    Set NewWB = Application.Workbooks.Add
    
    '-- pasteuj
    With NewWB.Worksheets(1)
        Set MyRange = .Range(.Cells(1, 1), .Cells(10, 10))
        MyRange.PasteSpecial xlPasteAll
    End With
    Set MyRange = Nothing


pa ako ovo radi, onda podesi worksheetove koji ti trebaju i range
[ `and @ 17.11.2004. 18:56 ] @
Kod mene radi ovako :

Code:

Sub Otvori_kopiraj_zatvori_export()

Application.DisplayAlerts = False
MsgBox "Find ExcelFile!"
MyExcelFile = Application.GetOpenFilename
Application.ScreenUpdating = False
Workbooks.Open Filename:=MyExcelFile
MyExcelFile = ActiveWorkbook.Name
Workbooks(MyExcelFile).Activate
Sheets("Sheet1").Select
Range("B2:B4").Select
Selection.Copy
Application.ScreenUpdating = True

Workbooks(MyExcelFile).Close

End Sub


Sub paste_to_import()

MyExcelFile = ActiveWorkbook.Name
Range("B2:B4").PasteSpecial

End Sub

[ Ana99 @ 18.11.2004. 18:19 ] @
Hvala puno na odgovorima, nazalost celog dana nisam mogla da se javim, a ovo moram da zavrsim do sutra ujutru. Ceka me duga noc...
kod od Ivana funkcionise, samo problem je u tome sto se ne kopira i formula u celijama, vec sam pokusala, ali na zalost ne funkcionise. Da li neko zna kako treba uraditi?
Pozdrav
Ana