Προς το περιεχόμενο

for..next..step VBA


Lancerakias

Προτεινόμενες αναρτήσεις

Καλησπέρα. Θέλω σε έναν πίνακα στο Excel με την χρήση for..next..step να βγάλω το αποτέλεσμα της εικόνας. Εχω προσπαθήσει αρκετά αλλα το μόνο που καταφέρνω ειναι να βγάλω την πρώτη σειρά, δεν ξέρω πως να το κανω να συνεχίσει απο την επόμενη σειρά και να το αυξάνει κατα 2 η 3 κ.ο.κ.Καμιά ιδέα?

post-182458-0-86667400-1413979521_thumb.jpg

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θες για την κάθε στήλη μια μεταβλητή (και άλλη μια για το αύξων ποσό) που σε κάθε λούπα θα υπολογίζεται εκ νέου και θα «εκτυπώνετε» στο excel.

 

Αν μπορείς να δώσεις τον κώδικα εδώ,κάποιος με περισσότερες γνώσεις μπορεί να σου δώσει μερικές συμβουλές.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τι ακριβώς σε μπερδεύει;

2 for είναι μία μέσα στην άλλη.Δύο μεταβλητές και χρήση του Sheet1.Cells(i,j) και έχεις την προπαίδεια... :-)

 

ΥΓ1. Με πήγες πολλά χρόνια πίσω με τα datei,einfugen κλπ.

ΥΓ2. 4*9=36...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τι ακριβώς σε μπερδεύει;

2 for είναι μία μέσα στην άλλη.Δύο μεταβλητές και χρήση του Sheet1.Cells(i,j) και έχεις την προπαίδεια... :-)

 

ΥΓ1. Με πήγες πολλά χρόνια πίσω με τα datei,einfugen κλπ.

ΥΓ2. 4*9=36...

Είμαι νέος στον προγραμματισμό και ενώ το έχω ήδη προσπαθήσει με 2 for κάτι κάνω λάθος και δεν μου βγαίνει..Νομίζω πως το μυαλό μου δεν φτάνει ακόμα μέχρι εκεί. Να φανταστώ και εσύ κάτοικος της Γερμανίας?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες


Sub times_table()
Dim myrow As Long
Dim mycolumn As Long
Dim number_rows As Long
Dim number_columns As Long

number_rows = 10
number_columns = 6

' Κελί που θα μπει το πρώτο στοιχείο του πίνακα
Range("B5").Select

myrow = ActiveCell.Row
mycolumn = ActiveCell.Column
Application.ScreenUpdating = False
For j = 1 To number_rows
For i = 1 To number_columns
Cells(myrow - 1 + j, mycolumn - 1 + i) = i * j
Next i
Next j

' -------------------------------------------
' αν θέλεις να μπει χρώμα
Range(myCell(myrow, mycolumn) + ":" + myCell(myrow - 1 + number_rows, mycolumn - 1 + number_columns)).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'---------------------------------------------

Application.ScreenUpdating = False
Range("L7").Select
End Sub

'Οι παρακάτω χρησιμεύουν αν θες να βάλεις χρώμα

Function myCell(iRow As Long, iCol As Long, Optional sCol As String = "") As String
Dim c As Long
c = iCol
myCell = Col2Ltr(c) + Trim(CStr(iRow))

End Function

Function Col2Ltr(iCol As Long, Optional sCol As String = "") As String
If iCol = 0 Then
Col2Ltr = sCol
Else
sCol = Chr(65 + (iCol - 1) Mod 26) & sCol
iCol = (iCol - 1) \ 26
Col2Ltr = Col2Ltr(iCol, sCol)
End If
End Function

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Sub times_table()
Dim myrow As Long
Dim mycolumn As Long
Dim number_rows As Long
Dim number_columns As Long
    
    number_rows = 10
    number_columns = 6
 
' Κελί που θα μπει το πρώτο στοιχείο του πίνακα     
    Range("B5").Select
    
    myrow = ActiveCell.Row
    mycolumn = ActiveCell.Column
    Application.ScreenUpdating = False
    For j = 1 To number_rows
        For i = 1 To number_columns
            Cells(myrow - 1 + j, mycolumn - 1 + i) = i * j
        Next i
    Next j

' ------------------------------------------- 
' αν θέλεις να μπει χρώμα 
    Range(myCell(myrow, mycolumn) + ":" + myCell(myrow - 1 + number_rows, mycolumn - 1 + number_columns)).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
'---------------------------------------------

    Application.ScreenUpdating = False
    Range("L7").Select
End Sub

'Οι παρακάτω χρησιμεύουν αν θες να βάλεις χρώμα

Function myCell(iRow As Long, iCol As Long, Optional sCol As String = "") As String
Dim c As Long
 c = iCol
 myCell = Col2Ltr(c) + Trim(CStr(iRow))
 
End Function

Function Col2Ltr(iCol As Long, Optional sCol As String = "") As String
    If iCol = 0 Then
        Col2Ltr = sCol
    Else
        sCol = Chr(65 + (iCol - 1) Mod 26) & sCol
        iCol = (iCol - 1) \ 26
        Col2Ltr = Col2Ltr(iCol, sCol)
    End If
End Function

Σε ευχαριστώ πολύ για την απάντηση..Ήταν πολύ εύκολο τελικά αλλά είχε κολήσει το μυαλό μου και δεν μπορούσα με τίποτα να το βρώ..Προσπαθούσα με πολύ πιο πολύπλοκο και λάθος τρόπο να το κάνω και δεν έβγαινε.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...