AU SECOURS

AU SECOURS - VB/VBA/VBS - Programmation

Marsh Posté le 27-03-2004 à 10:50:52    

Je suis débutante en VBA et je dois réaliser un prog me permettant de construire un tableau en vue d'élaborer des graphiques.
voici mon prog mais il déconne :
 
Sub Macro1()
Dim date_recherche, ligne_cellule_recherche, ligne_colonne_recherche As String
Dim cellule_recherche As Object
Dim valeur As Integer
 
'Création d'une nouvelle feuille
Sheets.Add
ActiveSheet.Name = "Récapitulatif"
 
'préparation des differentes feuilles
nombre_feuille_total = 4
For nombre_feuille = 2 To nombre_feuille_total
 
   'Sélection de la feuille autres
    Sheets(nombre_feuille).Select
    Cells.Select
    Range("A53" ).Activate
    Selection.NumberFormat = "@"
     
    colonne = 3
    colonne_date = colonne + 2
    colonne_filtre = colonne_date + 1
    colonne_nombre = colonne_filtre + 1
    ligne = 2
     
    'calcul du nombre de ligne renseignée
    x = Cells.Find("*", [A1], , , , xlPrevious).Row
 
    'retire les jours et les heures
    For ligne = 2 To x
        cellule = Cells(ligne, colonne)
        t = Left(cellule, 13)
        Cells(ligne, colonne_date) = Right(t, 8)
    Next
 
    'filtre le nombre de valeur unique
    filtre_début = Cells(ligne, colonne_filtre)
    filtre_fin = Cells(ligne + x, colonne_filtre)
 
    Range("E2:E3000" ).AdvancedFilter _
        Action:=xlFilterCopy, _
        CopyToRange:=Columns(colonne_filtre), _
        Unique:=True
 
    'compte le nombre de virus par jour
    For ligne = 2 To x
        cellule = Cells(ligne, colonne_filtre)
        Cells(ligne, colonne_nombre) = Application.CountIf(Range("E1:E3000" ), cellule)
    Next
     
Next
 
'copie des données de la feuille Autres dans la feuille récapitulatif
nombre_feuille = 2
Worksheets(nombre_feuille).Range("F1:G100" ).Copy
ActiveSheet.Paste Destination:=Worksheets("Récapitulatif" ).Range("A1" )
 
 
'finition de la feuille récapitulatif
             
   For feuille = 3 To nombre_feuille_total + 1
        Worksheets(feuille).Activate
        ligne_début = 2
        ligne_fin = Cells.Find("*", [A1], , , , xlPrevious).Row
        colonne_date = 6
        colonne_valeur = colonne_date + 1
         
        'test pour voir si bonne feuille
        Cells(ligne_début, colonne_date + 4) = "test"
         
                 
        For ligne_date = ligne_début To ligne_fin
            date_recherche = Cells(ligne_date, colonne_date)
            valeur = Cells(ligne_date, colonne_valeur)
             
            With Sheets("Récapitulatif" )
                ligne_recapitulatif_fin = Cells.Find("*", [A1], , , , xlPrevious).Row               ligne_cellule_recherche = .Find(date_recherche).Row
                If cellule <> "" Then
                    Cells(ligne_cellule_recherche, feuille) = valeur
                Else
                    ligne_cellule_recherche = ligne_recapitulatif_fin
                    colonne_recherche = feuille
                    Cells(ligne_cellule_recherche, colonne_recherche) = valeur
                End If
            End With
         
        Next
    Next
 
End Sub
 
pourriez vous m'aider ?
 
1) Chaque feuille correspond à une liste d'attaque de virus, je filtre ces données pour en retirer les doublons et donc créer une colonne date unique et une colonne valeur correspondante dans chaque feuille existante
2) je crée une nouvelle feuille "Récapitulatif"
3) je copie 2 colonnes de ma 1ere feuille de données (colonne date unique et valeur)
4) je dois prendre chaque valeur de mes autres euille et les positionner dans la feuille récapitulatif das une colonne propre soit à la date correspondante si elle existe déjà soit sur une nouvelle ligne.
 
j'espere que vous me comprendrez, merci d'avance pour votre aide !!!!!!!!  :hello:  

Reply

Marsh Posté le 27-03-2004 à 10:50:52   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed