pb macro

rak

XLDnaute Junior
Bonjour

j'ai un problléme de taille avec une macro, que je n'arrive pas à modifier voici les explications:

Cette macro est limitée en terme de donnée seule 20 données peuvent être saisie
1)J'ai essaye de modifier cette limitation mais hélas je ne suis pas arriver a le réaliser
2) la macro tri réalise un copier coller mais elle copies toutes les données alors que je souhaite réaliser un copier coller des colonnes sélectionnées suivante :

fichIER test Fichier base

Nu CAR colonne a = Nu CAR colonne e
St aff colonne B = St aff COLONNE b
Nu Chassis colonne f = Nu Chassis colonne c
Mod Version colonne h = Mod Version colonne d
Modele colonne g = Famille colonne e
Bse Cpt colonne j = Bse Cpt colonne f
Am Fab colonne M = Am Fab colonne g
Am Aff colonne o = Am Aff colonne h
Date Aff colonne P = Jour Af colonne i


Voici le code vba de la macro
Code:
Public nblignelue, tableau(300, 20)
Sub tri()
Workbooks("test1_new.xls").Activate
Sheets("Données").Activate
Range("M4").Select
nblignelue = 1
Do
    If Year(CDate(ActiveCell.Value)) < Year(Date) Then
        If Month(Date) > 3 Then
            cell = ActiveCell.Address
            colonne = GetCol(ActiveCell)
            'ReDim Preserve tableau(nblignelue, 20)
            adresse = "$A$" + Right(Str(colonne), Len(Str(colonne)) - 1)
            Range(adresse).Select
            For i = 1 To 300
                tableau(nblignelue, i) = ActiveCell.Value
                Selection.Offset(0, 1).Select
            Next
            nblignelue = nblignelue + 1
            Range(cell).Select
        ElseIf (CDate(ActiveCell.Value)) - Month(Date) < 9 Then
            cell = ActiveCell.Address
            colonne = GetCol(ActiveCell)
            'ReDim Preserve tableau(nblignelue, 20)
            adresse = "$A$" + Right(Str(colonne), Len(Str(colonne)) - 1)
            Range(adresse).Select
            For i = 1 To 300
                tableau(nblignelue, i) = ActiveCell.Value
                Selection.Offset(0, 1).Select
            Next
            nblignelue = nblignelue + 1
            Range(cell).Select
        End If
    ElseIf Month(CDate(ActiveCell.Value)) <= (Month(Date) - 3) Then
        cell = ActiveCell.Address
        colonne = GetCol(ActiveCell)
        'ReDim Preserve tableau(nblignelue, 20)
        adresse = "$A$" + Right(Str(colonne), Len(Str(colonne)) - 1)
        Range(adresse).Select
        For i = 1 To 300
            tableau(nblignelue, i) = ActiveCell.Value
            Selection.Offset(0, 1).Select
        Next
        nblignelue = nblignelue + 1
        Range(cell).Select
    End If
    Selection.Offset(1, 0).Select
Loop While ActiveCell.Value <> ""
Workbooks("base_new.xls").Activate
Sheets("> 3mois").Activate
Range("a2").Select
For i = 1 To nblignelue - 1
    For j = 1 To 300
        ActiveCell.Value = tableau(i, j)
        Selection.Offset(0, 1).Select
    Next
    Selection.Offset(1, -300).Select
Next
End Sub
Sub test()
ft = MsgBox(Str(GetCol(ActiveCell)), , "TEST")
End Sub
Public Function GetCol(cell As Range) As Integer
GetCol = Val(Right(cell.Address, Len(cell.Address) - InStr(2, cell.Address, "$")))
End Function



Encore une nouvelle fois merci pour votre aide


et joyeux noel
 

Statistiques des forums

Discussions
312 468
Messages
2 088 682
Membres
103 919
dernier inscrit
BOB66500