Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Besoin d'aide sur une macro

14 réponses
Avatar
Flo 09
Bonjour,
Je viens chercher de l'aide pour =E9crire une macro, sachant que je n'ai
qasiment aucune connaissance dans ce domaine...
Mon "probl=E8me" est le suivant :
Je dispose de donn=E9es pr=E9sent=E9es ainsi :
Colonne A : Intitul=E9
Colonne B : Date
Colonne C : Valeur

Pour un intitul=E9 donn=E9, j'ai =E0 chaque fois 7 ou 8 lignes,
correspondant chacune =E0 une date diff=E9rente (du jeudi au jeudi ou au
vendredi suivant).
Et j'ai de tr=E8s nombreux intitul=E9s...

Pour pouvoir inscrire ces donn=E9es dans le tableur qui m'int=E9resse, je
dois les "basculer". Jusqu'=E0 maintenant, je proc=E9dais avec les
commandes Copy / Paste Special / Transpose pour chaque bloc de donn=E9es
(1 bloc =3D 1 intitul=E9).

J'obtenais ainsi mes donn=E9es dans le mode horizontal qui m'int=E9resse,
mais bien s=FBr, cette manip' est tr=E8s longue...

J'ai aussi essay=E9 en traitant toutes les donn=E9es d'un coup, mais ceci
pr=E9sente 2 inconv=E9nients :

D'abord, le nombre de donn=E9es d=E9passe largement le nombre de colonnes
disponibles dans mon tableur.

Mais surtout, cela ne repr=E9sente aucun gain de temps, car avant de
pouvoir ins=E9rer mes donn=E9es horizontales dans mon tableur d=E9finitif,
je dois encore intervenir dessus en intercalant de nouvelles colonnes
(correspondant au samedi et au dimanche), et pour ce faire, j'ai
besoin que les donn=E9es soient certes horizontales (pour chaque
intitul=E9), mais aussi que les diff=E9rents intitul=E9s se rangent les uns
sous les autres (et non pas les uns =E0 c=F4t=E9 des autres).

Quelqu'un ici aurait-il la gentillesse de m'aider =E0 =E9crire une macro
qui pourrait faire le travail que je faisais manuellement jusqu'=E0
maintenant ?

J'esp=E8re avoir =E9t=E9 assez claire dans mes explications, mais si tel
n'est pas le cas, faites le moi savoir.

Merci d'avance pour votre aide.
A +
--
Flo

10 réponses

1 2
Avatar
isabelle
bonjour Flo,

est ce que un bloc de 8 lignes 3 colonnes
doit devenir un bloc de 2 lignes 9 colonnes ?

peut tu montrer un exemple "avant "apres" sur ci-joint ?

isabelle

Bonjour,
Je viens chercher de l'aide pour écrire une macro, sachant que je n'ai
qasiment aucune connaissance dans ce domaine...
Mon "problème" est le suivant :
Je dispose de données présentées ainsi :
Colonne A : Intitulé
Colonne B : Date
Colonne C : Valeur

Pour un intitulé donné, j'ai à chaque fois 7 ou 8 lignes,
correspondant chacune à une date différente (du jeudi au jeudi ou au
vendredi suivant).
Et j'ai de très nombreux intitulés...

Pour pouvoir inscrire ces données dans le tableur qui m'intéresse, je
dois les "basculer". Jusqu'à maintenant, je procédais avec les
commandes Copy / Paste Special / Transpose pour chaque bloc de données
(1 bloc = 1 intitulé).

J'obtenais ainsi mes données dans le mode horizontal qui m'intéresse,
mais bien sûr, cette manip' est très longue...

J'ai aussi essayé en traitant toutes les données d'un coup, mais ceci
présente 2 inconvénients :

D'abord, le nombre de données dépasse largement le nombre de colonnes
disponibles dans mon tableur.

Mais surtout, cela ne représente aucun gain de temps, car avant de
pouvoir insérer mes données horizontales dans mon tableur définitif,
je dois encore intervenir dessus en intercalant de nouvelles colonnes
(correspondant au samedi et au dimanche), et pour ce faire, j'ai
besoin que les données soient certes horizontales (pour chaque
intitulé), mais aussi que les différents intitulés se rangent les uns
sous les autres (et non pas les uns à côté des autres).

Quelqu'un ici aurait-il la gentillesse de m'aider à écrire une macro
qui pourrait faire le travail que je faisais manuellement jusqu'à
maintenant ?

J'espère avoir été assez claire dans mes explications, mais si tel
n'est pas le cas, faites le moi savoir.

Merci d'avance pour votre aide.
A +
--
Flo



Avatar
Flo 09
Bonsoir Isabelle,

Merci de bien vouloir essayer de m'aider. C'est pas gagné : la seule
macro que j'aie jamais utilisée, c'est qqu'un qui me l'avait écrite...

est ce que un bloc de 8 lignes 3 colonnes
doit devenir un bloc de 2 lignes 9 colonnes ?



En fait, plusieurs blocs (qq dizaines) de 3 colonnes (toujours 3) et
de 5 à 7 lignes doivent devenir autant de blocs de 3 lignes et de 5 à
7 colonnes.

peut tu montrer un exemple "avant "apres" sur ci-joint ?


Je ne sais pas comment joindre un fichier excel, alors j'ai commencé
par faire une petit copier/coller en bas de cette page
.

isabelle



Voici comment se présente les données brutes :

Fonds n°1 27-sept 100,00
Fonds n°1 28-sept 100,50
Fonds n°1 01-oct 99,00
Fonds n°1 02-oct 101,00
Fonds n°1 03-oct 102,00
Fonds n°1 04-oct 105,00
Fonds n°1 05-oct 104,00

Fonds n°2 27-sept 25,00
Fonds n°2 28-sept 27,00
Fonds n°2 01-oct 26,00
Fonds n°2 02-oct 24,00
Fonds n°2 03-oct 28,00
Fonds n°2 04-oct 29,00

Fonds n°3 27-sept 420,00
Fonds n°3 28-sept 430,00
Fonds n°3 01-oct 425,00
Fonds n°3 02-oct 445,00
Fonds n°3 03-oct 450,00
Fonds n°3 04-oct 455,00

Fonds n°4 27-sept 75,00
Fonds n°4 28-sept 77,00
Fonds n°4 01-oct 79,00
Fonds n°4 02-oct 77,50
Fonds n°4 03-oct 78,25
Fonds n°4 04-oct 80,00
Fonds n°4 05-oct 82,00

Voici comment je souhaite qu'elles se présentent afin que je puisse
les utiliser :
Je réalise actuellement cette étape MANUELLEMENT.
En utilisant les commances Copy / Paste special / Transpose pour
chaque bloc l'un après l'autre...

Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fon ds n
°1
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct 05-oct
100,00 100,50 99,00 101,00 102,00 105,00 104,00

Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct
25,00 27,00 26,00 24,00 28,00 29,00

Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct
420,00 430,00 425,00 445,00 450,00 455,00

Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fon ds n
°4
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct 05-oct
75,00 77,00 79,00 77,50 78,25 80,00 82,00

... car je dois ensuite insérer les valeurs correspondant au samedi &
dimanche. Quand j'ai fini, j'obtiens ceci :
Le fait d'avoir les données dans ce sens me permet en effet d'insérer
des colonnes supplémentaires pour tous les blocs.

Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fon ds n°1
Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct 05-oct 06-
oct 07-oct
100,00 100,50 100,50 100,50 99,00 101,00 102,00 105,00 104,00 104,00
104,00

Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fon ds n°2
Fonds n°2
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct
25,00 27,00 27,00 27,00 26,00 24,00 28,00 29,00

Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fon ds n°3
Fonds n°3
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct
420,00 430,00 430,00 430,00 425,00 445,00 450,00 455,00

Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fon ds n°4
Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct 05-oct 06-
oct 07-oct
75,00 77,00 77,00 77,00 79,00 77,50 78,25 80,00 82,00 82,00 82,00


Voilà.
J'espère que cela te permettra de mieux comprendre ce que je
recherche.
Merci encore et à bientôt de te lire,
--
Flo

Avatar
Flo 09
est ce que un bloc de 8 lignes 3 colonnes
doit devenir un bloc de 2 lignes 9 colonnes ?


PLusieurs blocs (qq dizaines) de 3 colonnes et de 5 à 7 lignes doivent
devenir autant de blocs de 5 à 7 colonnes et de 3 lignes.

peut tu montrer un exemple "avant "apres" sur ci-joint ?


J'ignore s'il est possible de joinder un fichier.xls, et encore moins
comment, alors je te fais ici un petit copier/coller qui te permettra
je l'espère de mieux comprendre de quoi j'ai besoin.

Voici comment se présente les données brutes :

Fonds n°1 27-sept 100,00
Fonds n°1 28-sept 100,50
Fonds n°1 01-oct 99,00
Fonds n°1 02-oct 101,00
Fonds n°1 03-oct 102,00
Fonds n°1 04-oct 105,00
Fonds n°1 05-oct 104,00

Fonds n°2 27-sept 25,00
Fonds n°2 28-sept 27,00
Fonds n°2 01-oct 26,00
Fonds n°2 02-oct 24,00
Fonds n°2 03-oct 28,00
Fonds n°2 04-oct 29,00

Fonds n°3 27-sept 420,00
Fonds n°3 28-sept 430,00
Fonds n°3 01-oct 425,00
Fonds n°3 02-oct 445,00
Fonds n°3 03-oct 450,00
Fonds n°3 04-oct 455,00

Fonds n°4 27-sept 75,00
Fonds n°4 28-sept 77,00
Fonds n°4 01-oct 79,00
Fonds n°4 02-oct 77,50
Fonds n°4 03-oct 78,25
Fonds n°4 04-oct 80,00
Fonds n°4 05-oct 82,00

Voici comment je souhaite qu'elles se présentent afin que je puisse
les utiliser :
Je réalise actuellement cette étape MANUELLEMENT.
En utilisant les commances Copy / Paste special / Transpose pour
chaque bloc l'un après l'autre...

Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fon ds n
°1
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct 05-oct
100,00 100,50 99,00 101,00 102,00 105,00 104,00

Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct
25,00 27,00 26,00 24,00 28,00 29,00

Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct
420,00 430,00 425,00 445,00 450,00 455,00

Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fon ds n
°4
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct 05-oct
75,00 77,00 79,00 77,50 78,25 80,00 82,00

... car je dois ensuite insérer les valeurs correspondant au samedi &
dimanche. Quand j'ai fini, j'obtiens ceci :
Le fait d'avoir les données dans ce sens me permet en effet d'insérer
des colonnes supplémentaires pour tous les blocs.

Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fon ds n°1
Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct 05-oct 06-
oct 07-oct
100,00 100,50 100,50 100,50 99,00 101,00 102,00 105,00 104,00 104,00
104,00

Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fon ds n°2
Fonds n°2
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct
25,00 27,00 27,00 27,00 26,00 24,00 28,00 29,00

Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fon ds n°3
Fonds n°3
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct
420,00 430,00 430,00 430,00 425,00 445,00 450,00 455,00

Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fon ds n°4
Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct 05-oct 06-
oct 07-oct
75,00 77,00 77,00 77,00 79,00 77,50 78,25 80,00 82,00 82,00 82,00

Merci de ta proposition d'aide, et à bientôt.
-- Flo

Avatar
cousinhub
Bonsoir, regarde le fichier joint
J'ai supposé qu'il y avait une ligne vide entre les différents types de
fonds. Si ce n'est pas le cas, il faudra repenser le code.
Avec le bouton transpose, tu mets les données comme tu le souhaites
Avec le bouton Remet, on revient à l'état original (du moins pour le
fichier que tu as "fourni")
Reviens si tu as un souci

http://cjoint.com/?knb0l6gcVg

le code :

Sub transpose()
Application.ScreenUpdating = False
x = Application.CountA(Range("A2:C65000"))
m = Range("A2").End(xlDown).Row
n = 2
k = 1
Do While x <> y
Range(Cells(n, 1), Cells(m, 3)).Copy
Cells(k, 5).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, transpose:=True
Range(Cells(n, 1), Cells(m, 3)).ClearContents
n = Range("A2").End(xlDown).Row
m = Cells(n, 1).End(xlDown).Row
k = k + 4
y = Application.CountA(Range("E1:K65000"))
Loop
For col = 11 To 5 Step -1
If Application.Weekday(Cells(2, col)) = 6 Then
Range(Cells(1, col + 1), Cells(1, col + 2)).EntireColumn.Insert
Shift:=xlToRight
Cells(1, col).EntireColumn.Copy Cells(1, col + 1)
Cells(1, col).EntireColumn.Copy Cells(1, col + 2)
End If
Next col
derlig = Range("E65000").End(xlUp).Row
For i = 2 To derlig - 1 Step 4
dercol = Cells(i, 256).End(xlToLeft).Column
Cells(i, 5).AutoFill Destination:=Range(Cells(i, 5), Cells(i, dercol)),
Type:=xlFillDefault
Next i
'Columns("A:D").Delete Shift:=xlToLeft
Range("A1").Select
End Sub


est ce que un bloc de 8 lignes 3 colonnes
doit devenir un bloc de 2 lignes 9 colonnes ?


PLusieurs blocs (qq dizaines) de 3 colonnes et de 5 à 7 lignes doivent
devenir autant de blocs de 5 à 7 colonnes et de 3 lignes.

peut tu montrer un exemple "avant "apres" sur ci-joint ?


J'ignore s'il est possible de joinder un fichier.xls, et encore moins
comment, alors je te fais ici un petit copier/coller qui te permettra
je l'espère de mieux comprendre de quoi j'ai besoin.

Voici comment se présente les données brutes :

Fonds n°1 27-sept 100,00
Fonds n°1 28-sept 100,50
Fonds n°1 01-oct 99,00
Fonds n°1 02-oct 101,00
Fonds n°1 03-oct 102,00
Fonds n°1 04-oct 105,00
Fonds n°1 05-oct 104,00

Fonds n°2 27-sept 25,00
Fonds n°2 28-sept 27,00
Fonds n°2 01-oct 26,00
Fonds n°2 02-oct 24,00
Fonds n°2 03-oct 28,00
Fonds n°2 04-oct 29,00

Fonds n°3 27-sept 420,00
Fonds n°3 28-sept 430,00
Fonds n°3 01-oct 425,00
Fonds n°3 02-oct 445,00
Fonds n°3 03-oct 450,00
Fonds n°3 04-oct 455,00

Fonds n°4 27-sept 75,00
Fonds n°4 28-sept 77,00
Fonds n°4 01-oct 79,00
Fonds n°4 02-oct 77,50
Fonds n°4 03-oct 78,25
Fonds n°4 04-oct 80,00
Fonds n°4 05-oct 82,00

Voici comment je souhaite qu'elles se présentent afin que je puisse
les utiliser :
Je réalise actuellement cette étape MANUELLEMENT.
En utilisant les commances Copy / Paste special / Transpose pour
chaque bloc l'un après l'autre...

Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n
°1
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct 05-oct
100,00 100,50 99,00 101,00 102,00 105,00 104,00

Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct
25,00 27,00 26,00 24,00 28,00 29,00

Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct
420,00 430,00 425,00 445,00 450,00 455,00

Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n
°4
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct 05-oct
75,00 77,00 79,00 77,50 78,25 80,00 82,00

... car je dois ensuite insérer les valeurs correspondant au samedi &
dimanche. Quand j'ai fini, j'obtiens ceci :
Le fait d'avoir les données dans ce sens me permet en effet d'insérer
des colonnes supplémentaires pour tous les blocs.

Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1
Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct 05-oct 06-
oct 07-oct
100,00 100,50 100,50 100,50 99,00 101,00 102,00 105,00 104,00 104,00
104,00

Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2
Fonds n°2
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct
25,00 27,00 27,00 27,00 26,00 24,00 28,00 29,00

Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3
Fonds n°3
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct
420,00 430,00 430,00 430,00 425,00 445,00 450,00 455,00

Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4
Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct 05-oct 06-
oct 07-oct
75,00 77,00 77,00 77,00 79,00 77,50 78,25 80,00 82,00 82,00 82,00

Merci de ta proposition d'aide, et à bientôt.
-- Flo




Avatar
Flo 09
Isabelle, je ne sais tout simplement pas comment te remercier !
Si tu savais depuis combien de mois je me tape ce boulot manuellement,
chaque semaine...
Alors voilà, je vais tenter d'écrire le code que tu m'as fourni, et si
je bloque, je reviendrai vers toi, ici. Et si çà marche du premier
coup pour moi, de toutes façons, je reviendrai aussi, pour te le dire.
Merci encore 1000 fois.
A +
--
Flo

PS : puisque j'en suis aux remerciements, merci aussi de m'avoir fait
connaître le service cjoint.com, bien pratique !!!
Avatar
cousinhub
Bonsoir, Flo

Isabelle,


Ben, raté, moi, c'est hub
Sans rancune,
tu peux revenir quand tu veux, pour plus d'explications

Isabelle, je ne sais tout simplement pas comment te remercier !
Si tu savais depuis combien de mois je me tape ce boulot manuellement,
chaque semaine...
Alors voilà, je vais tenter d'écrire le code que tu m'as fourni, et si
je bloque, je reviendrai vers toi, ici. Et si çà marche du premier
coup pour moi, de toutes façons, je reviendrai aussi, pour te le dire.
Merci encore 1000 fois.
A +
--
Flo

PS : puisque j'en suis aux remerciements, merci aussi de m'avoir fait
connaître le service cjoint.com, bien pratique !!!



Avatar
Mishell
Bonjour Flo 09.

Voici un autre code pour réaliser ta transposition:

Sub TransposeSur3Lignes()
feuilleOrigine = "Feuil1"
feuilleDestination = "Feuil2"
ColonneDestination = "A"
LigneDestination = 1

debut = 0

Dim MaLigne As Variant
MaLigne = Sheets(feuilleOrigine).Range("A1").End(xlDown).Address
MaLigne = Sheets(feuilleOrigine).Range(MaLigne).Row + 1


For i = 1 To MaLigne
a = Trim(Sheets(feuilleOrigine).Cells(i, 1))
If a <> "" Then
If debut = 0 Then debut = i
End If

If a = "" And debut <> 0 Then
fin = i - 1

r = "A" & debut & ":C" & fin

Sheets(feuilleOrigine).Select

Sheets(feuilleOrigine).Range(r).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(feuilleDestination).Select

r = ColonneDestination & LigneDestination
LigneDestination = LigneDestination + 4

Sheets(feuilleDestination).Range(r).Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone,
SkipBlanks:úlse _
, Transpose:=True
debut = 0
End If
Next
End Sub


"Flo 09" wrote in message
news:
Bonsoir Isabelle,

Merci de bien vouloir essayer de m'aider. C'est pas gagné : la seule
macro que j'aie jamais utilisée, c'est qqu'un qui me l'avait écrite...

est ce que un bloc de 8 lignes 3 colonnes
doit devenir un bloc de 2 lignes 9 colonnes ?



En fait, plusieurs blocs (qq dizaines) de 3 colonnes (toujours 3) et
de 5 à 7 lignes doivent devenir autant de blocs de 3 lignes et de 5 à
7 colonnes.

peut tu montrer un exemple "avant "apres" sur ci-joint ?


Je ne sais pas comment joindre un fichier excel, alors j'ai commencé
par faire une petit copier/coller en bas de cette page
.

isabelle



Voici comment se présente les données brutes :

Fonds n°1 27-sept 100,00
Fonds n°1 28-sept 100,50
Fonds n°1 01-oct 99,00
Fonds n°1 02-oct 101,00
Fonds n°1 03-oct 102,00
Fonds n°1 04-oct 105,00
Fonds n°1 05-oct 104,00

Fonds n°2 27-sept 25,00
Fonds n°2 28-sept 27,00
Fonds n°2 01-oct 26,00
Fonds n°2 02-oct 24,00
Fonds n°2 03-oct 28,00
Fonds n°2 04-oct 29,00

Fonds n°3 27-sept 420,00
Fonds n°3 28-sept 430,00
Fonds n°3 01-oct 425,00
Fonds n°3 02-oct 445,00
Fonds n°3 03-oct 450,00
Fonds n°3 04-oct 455,00

Fonds n°4 27-sept 75,00
Fonds n°4 28-sept 77,00
Fonds n°4 01-oct 79,00
Fonds n°4 02-oct 77,50
Fonds n°4 03-oct 78,25
Fonds n°4 04-oct 80,00
Fonds n°4 05-oct 82,00

Voici comment je souhaite qu'elles se présentent afin que je puisse
les utiliser :
Je réalise actuellement cette étape MANUELLEMENT.
En utilisant les commances Copy / Paste special / Transpose pour
chaque bloc l'un après l'autre...

Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n
°1
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct 05-oct
100,00 100,50 99,00 101,00 102,00 105,00 104,00

Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct
25,00 27,00 26,00 24,00 28,00 29,00

Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct
420,00 430,00 425,00 445,00 450,00 455,00

Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n
°4
27-sept 28-sept 01-oct 02-oct 03-oct 04-oct 05-oct
75,00 77,00 79,00 77,50 78,25 80,00 82,00

... car je dois ensuite insérer les valeurs correspondant au samedi &
dimanche. Quand j'ai fini, j'obtiens ceci :
Le fait d'avoir les données dans ce sens me permet en effet d'insérer
des colonnes supplémentaires pour tous les blocs.

Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1
Fonds n°1 Fonds n°1 Fonds n°1 Fonds n°1
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct 05-oct 06-
oct 07-oct
100,00 100,50 100,50 100,50 99,00 101,00 102,00 105,00 104,00 104,00
104,00

Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2 Fonds n°2
Fonds n°2
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct
25,00 27,00 27,00 27,00 26,00 24,00 28,00 29,00

Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3 Fonds n°3
Fonds n°3
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct
420,00 430,00 430,00 430,00 425,00 445,00 450,00 455,00

Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4
Fonds n°4 Fonds n°4 Fonds n°4 Fonds n°4
27-sept 28-sept 29-sept 30-sept 01-oct 02-oct 03-oct 04-oct 05-oct 06-
oct 07-oct
75,00 77,00 77,00 77,00 79,00 77,50 78,25 80,00 82,00 82,00 82,00


Voilà.
J'espère que cela te permettra de mieux comprendre ce que je
recherche.
Merci encore et à bientôt de te lire,
--
Flo

Avatar
isabelle
c'est gentil de me remercier Flo, mais c'est cousin hub qui a prit la releve en mon absence, et qui t'a donner la solution.
merci ! cousin hub.

isabelle

Isabelle, je ne sais tout simplement pas comment te remercier !
Si tu savais depuis combien de mois je me tape ce boulot manuellement,
chaque semaine...
Alors voilà, je vais tenter d'écrire le code que tu m'as fourni, et si
je bloque, je reviendrai vers toi, ici. Et si çà marche du premier
coup pour moi, de toutes façons, je reviendrai aussi, pour te le dire.
Merci encore 1000 fois.
A +
--
Flo

PS : puisque j'en suis aux remerciements, merci aussi de m'avoir fait
connaître le service cjoint.com, bien pratique !!!



Avatar
Flo 09
CousinHub :
Pardon ! Merci Hub' ! Je n'avais pas fait attention à ce changement
d'interlocuteur...
Ta macro a parfaitement fonctionné sur les 4 permiers tableurs sur
lesquels je travaille. Génial !
Mais, pour une raison que j'ignore totalement, sur le 5ème et dernier,
elle a engendré qq "fantaisies" : des dates supplémentaires sont
apparues correspondant au samedi et dimanche... ce qui ne s'était pas
produit auparavant. C'est d'ailleurs une fonction queje peux très
facilement réaliser manuellement en à peine 3 ou 4 clics de souris.
Ah oui, et puis, pourrais-tu m'expliquer comment tu as obtenu
l'insertion des boutons "transpose" et "remet" ? Je t'avais prévenu,
je suis nulle... et je n'ai donc pas compris cette partie de
ll'exécution de ta macro. Alors je me suis contentée d'exécuter la
macro "transpose". Ce qui a donné les résultats dont je viens de te
parler.
Enfin, existe-t-il une façon d'enregistrer ta macro afin de ne pas
avoir à ouvrir systématiquement le fichier .xls que tu avais mis sur
cjoint.com pour pouvoir y accéder ?

Mishell : j'essaierais avec grand plaisir ta macro, mais il faudrait
juste m'aider un peu avec la saisie du code que tu as eu la
gentillesse d'écrire. En fait, je n'arrive pas à trouver l'info qui me
permettrait d'ouvrir la fenêtre de saisie des lignes de code. Lorsque
je fais Outils / Macros / Visual Basic Editor, je vois apparaître une
fenêtre dans laquelle se trouve le code de cousin Hub', mais je ne
sais comment faire pour en démarrer une nouvelle. Bon, j'ai bien
essayé de trouver çà avec Google, mais je préfère de loin me le f aire
expliquer par quelqu'un ici...

Merci encore à vous 3, et à bientôt de vous lire je l'espère.
J'aimerais beaucoup acquérir les connaissances basiques nécessaires à
la saisie des macros, faute de savoir (au moins pour le moment), les
écrire...
--
Flo
Avatar
isabelle
bonjour Flo,

voici un autre méthode,

Sub Macro1()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim se(), i As Integer
Set plg = Sheets("Feuil1").Range("A1:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
Sheets.Add: ActiveSheet.Name = "zz"
plg.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("zz").Range("A1"), Unique:=True
For i = 2 To Sheets("zz").Range("A1").CurrentRegion.Count
ReDim Preserve se(i - 1)
se(i - 1) = Application.Match(Sheets("zz").Range("A" & i), Sheets("Feuil1").[A:A], 1)
Next
dep = "A1"
For i = 0 To UBound(se) - 1
Sheets("Feuil1").Range("" & dep & ":C" & se(i + 1)).Copy
Sheets("Feuil2").Range("A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
dep = "A" & se(i + 1) + 1
Next
Sheets("zz").Delete
Sheets("Feuil2").Activate
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

isabelle


CousinHub :
Pardon ! Merci Hub' ! Je n'avais pas fait attention à ce changement
d'interlocuteur...
Ta macro a parfaitement fonctionné sur les 4 permiers tableurs sur
lesquels je travaille. Génial !
Mais, pour une raison que j'ignore totalement, sur le 5ème et dernier,
elle a engendré qq "fantaisies" : des dates supplémentaires sont
apparues correspondant au samedi et dimanche... ce qui ne s'était pas
produit auparavant. C'est d'ailleurs une fonction queje peux très
facilement réaliser manuellement en à peine 3 ou 4 clics de souris.
Ah oui, et puis, pourrais-tu m'expliquer comment tu as obtenu
l'insertion des boutons "transpose" et "remet" ? Je t'avais prévenu,
je suis nulle... et je n'ai donc pas compris cette partie de
ll'exécution de ta macro. Alors je me suis contentée d'exécuter la
macro "transpose". Ce qui a donné les résultats dont je viens de te
parler.
Enfin, existe-t-il une façon d'enregistrer ta macro afin de ne pas
avoir à ouvrir systématiquement le fichier .xls que tu avais mis sur
cjoint.com pour pouvoir y accéder ?

Mishell : j'essaierais avec grand plaisir ta macro, mais il faudrait
juste m'aider un peu avec la saisie du code que tu as eu la
gentillesse d'écrire. En fait, je n'arrive pas à trouver l'info qui me
permettrait d'ouvrir la fenêtre de saisie des lignes de code. Lorsque
je fais Outils / Macros / Visual Basic Editor, je vois apparaître une
fenêtre dans laquelle se trouve le code de cousin Hub', mais je ne
sais comment faire pour en démarrer une nouvelle. Bon, j'ai bien
essayé de trouver çà avec Google, mais je préfère de loin me le faire
expliquer par quelqu'un ici...

Merci encore à vous 3, et à bientôt de vous lire je l'espère.
J'aimerais beaucoup acquérir les connaissances basiques nécessaires à
la saisie des macros, faute de savoir (au moins pour le moment), les
écrire...
--
Flo



1 2