Vba selection données dans une colonne

Fermé
jmerillon Messages postés 1 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 2 mars 2011 - Modifié par jmerillon le 2/03/2011 à 15:26
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 2 mars 2011 à 18:15
Bonjour,

je débute dans le forum et dans vba... bonjour les dégâts...
je m'explique j'ai une série de données dans une colonne excel (25000 lignes)
Toutes les 200 ou 300 lignes la série se réinitialise, mais le nombre de lignes est variable, par contre, chaque fin de série est suivie d'un commentaire "dispensed...", j'ai donc ajouté une ligne vide sous chaque commentaire afin de les dissocier...
je souhaite récupérer ces données en dissociant bien chaque série afin d'en tirer des graphiques.

voila ce que j'ai fais pour l'instant en épluchant les forums :

Range("A1").Select
Do While Not (IsEmpty(ActiveCell)) 'jusqu'a la derniere cellule non vide

Cells.Find(What:="dispensed time", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate 'chercher dispensed time

Selection.EntireRow.Insert ' selection ligne active

ActiveCell.Offset(2, 0).Activate ' decaler de 2 lignes vers le bas
Loop

cela me permet juste d'ajouter cette ligne vierge, mais je ne sais pas comment faire une sélection jusqu'à cette ligne...



quelqu'un peut il m'aider

3 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
2 mars 2011 à 15:52
suppose que les données commencent en A4

<gras>Range("a4").Select ' se place sur la cellule A4 et la sélectionne
Range(Selection, Selection.End(xlDown)).Select</gras>
( revient à faire shift+ flêche bas + fin)
ta plage est sélectionnée

A+
0
lulu37 Messages postés 76 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 8 avril 2016 13
2 mars 2011 à 16:47
Salut,

Je ne sais pas si j'ai bien saisi ta demande, j'ai cru comprendre que toutes tes données sont dans la col 1 et donc plusieurs séries de données dans cette même colonne à transformer en plusieurs graph ...?

Si c'est bien le cas, il faut déjà que tu intègres des variables dans ton code pour délimiter les 1ere et dernière ligne pour chaque série...et intégrer un code de créa graph dans ta boucle...
Quel type de données as tu , quel type de graph veux tu ? si tu as un fichier, j'y jetterai un oeil.

@+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
2 mars 2011 à 18:15
Bonjour,

cette macro écrit en feuille 2 les séries dans une colonne chacine

Sub dissocier_series()
Dim lig As Integer, lig2 As Integer, cptr As Integer

Application.ScreenUpdating = False
With Sheets(1)
    nbre = Application.CountIf(.Columns(1), "dispensed time")
    lig = 1
    For cptr = 1 To nbre
        lig2 = .Columns(1).Find("dispensed time", .Cells(lig, 1), xlValues).Row
        Sheets(2).Cells(2, cptr).Resize(lig2 - (lig + 1), 1) = .Range(.Cells(lig + 1, 1), .Cells(lig2 - 1, 1)).Value
        lig = lig2
    Next
    
End With
End Sub
0