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 = "@"
'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" )
'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 !!!!!!!!
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 !!!!!!!!