Groupement de lignes sous conditions et copie des groupes sur autres feuilles

  • Initiateur de la discussion A-binouze_drinker_among_others
  • Date de début
A

A-binouze_drinker_among_others

Guest
voila

j expose le probleme

soit les donnees suivantes dans la colonne A1


C1
dslkfds
fsalkjfas
sdafkfsd
end
C1
ejfdñsj
sdafkfsd
fsd
fsd
fs
end
C1
fdslkjsf
d
fdsg
fd
df
df
df
fd
end


voila la macro que j ai concocte, elle cree des groupes et en meme temps copie les valeurs de chaque groupe dans une feuille distincte


Sub grsfdsdfdouping()

Application.ScreenUpdating = False

Set actsh = ActiveSheet
Cells.ClearOutline
startCell = ""
ColumnACount = Application.Range("A1", Range("A65536").End(xlUp)).Rows.Count
For i = 1 To ColumnACount Step 1
If Range("A" & i).Value = "C1" Then ' startCell = "" Then
startCell = Range("A" & i).Address
rowStartcell = Range("A" & i).Row
For j = i + 1 To ColumnACount Step 1
If Range("A" & j).Value = "C1" And startCell <> "" Or Range("A" & j).Row = ColumnACount Then
endCell = Range("A" & (j - 1)).Address
rowEndCell = Range("A" & (j - 1)).Row
If Range("A" & j).Row = ColumnACount Then rowEndCell = Range("A" & j).Row
'Range(Cells(rowStartcell + 1, 1), Cells(rowEndCell, 1)).Select
'Selection.Rows.Group

Range(Cells(rowStartcell + 1, 1), Cells(rowEndCell, 1)).Rows.Group
Set x = Sheets.Add(after:=Sheets(1))
actsh.Range(actsh.Cells(rowStartcell, 1), actsh.Cells(rowEndCell, 1)).Copy Destination:=x.[A1]
actsh.Activate

startCell = ""
'i = j + 1
Exit For
End If
Next j
End If
Next i
ActiveSheet.Outline.ShowLevels RowLevels:=1


'ActiveWindow.DisplayOutline = False
Range("A1").Select
End Sub



je suis preneur de toute soluce, celle-ci etant un peu bourrin
bye
 
A

andré

Guest
Salut A-bin... (on ne va pas passer la journée sur ton pseudo -lol-).

Je n'y connais rien en VBA, mais je me pose la question de savoir pourquoi tu ne résouds pas ce problème par formules.

Tu crées deux colonnes supplémentaires à gauche de ta liste.
Dans la première (A), par un NB.SI tu numérotes tes C1.
Dans la seconde (B), par un SI tu copies la valeur de la colonne A si celle-ci est <>0, sinon tu copies la valeur de la cellule se trouvant au-dessus.

Dans tes différentes feuilles, tu places des RECHERCHEV et tu récupères ainsi tes données.

Si j'ai pas été clair, fais le savoir, je te fais un exemple.

Ândré.
 
A

A-binouze_drinker_among_others

Guest
bonjour



je veux bien nu exemple quand tu as le temps parceque je sais que tu maìtrises bien les nb.si combinés aux max.

mais
j ai réelleemtn besoin dedécouper rapidement un tel fichier en x autres fichiers.

je corse les choses même :

Header
ValX1
Valyyyy
Valzzzz
Valyyyy
Valzzzz
Valyyyy
Valzzzz
ValX2
Valyyyy
Valzzzz
Valyyyy
Valzzzz
Valyyyy
Valzzzz
ValXn
Footer

les fichiers à construire doivent contenir les header et footers.
Toutes les valeurs sont différentes mais commencent de la mème manière.

En tout cas merci pour ta reponse

Ciao
STephane
 
A

A-binouze_drinker_among_others

Guest
bonjour


je pense qu´il serait intéressant de s´intéresser aux déclarations "type", voire aux fonctions let et get property pour pouvoir définir des types de données.

bye
steph
 
J

Jon_Chninkel

Guest
bonjour

j'ai pondu une horreur :
=SI(LIGNE()=1;Accueil!$A$1;SI(LIGNE()=(2+NB.SI(Accueil!$C:$C;"=1"));DECALER(Accueil!$A$1;NBVAL(Accueil!$A:$A)-1;);SI(Accueil!C1=1;DECALER(Accueil!C1;0;-2);"")))

qui ne marche même pas bien.
ma feuille accueil contient les données à analyser

j'ai honte de ne pas m'en sortir avec ce genre de choses.

si vous voulez bien m'aider, je ferais ... tout ce que vous voulez, enfin presque tout ;-)))


Merci

Que tengas un buen dia !
(piensas que es falso, talves tengo que seguir cursos)

Stéphane
 

Pièces jointes

  • xld050803_abinouze.zip
    2.6 KB · Affichages: 24

Discussions similaires

Statistiques des forums

Discussions
314 085
Messages
2 105 627
Membres
109 401
dernier inscrit
LE CLUB