Transposé d'un tableau.

Fermé
Geof03 - 24 févr. 2015 à 16:26
 Geof03 - 25 févr. 2015 à 11:03
Bonjour,

Alors voila après pas mal de recherche et de codage en vain j'ai fini par presque terminé mon fichier. Seul me manque une chose... Je cherche maintenant a copié un tableau B10:F47 et le transposé sur une autre cellule. Mais pas seulement, je cherche aussi à ce que ce tableau reste dans le temps. Je m'explique. Mon but est de gardé le tableau copié en n-1, et ajouter en dessous le tableau en n. Et ainsi de suite.

Ai je réussi à me faire comprendre ?

Je crois que je suis pas loin de la solution mais je veux bien un coup de pouce. Mon dévellopeur ce bloque après la boucle qui trouve la première cellule vide pour écrire.

Je vous joint mon code. Merci de votre aide :)

Sub Evolution()

Dim n As Integer
' Evolution Macro
' le but est ici d'étudier l'évolution de l'agent accompagné.
'

Range("B10:F36").Select
Selection.Copy
Sheets("Evolution").Select
n = 0
For Each Cell In Sheets(4).Columns(1).Cells
If Not IsEmpty(Cell) Then n = n + 1
Next Cell
ActiveWindow.SmallScroll Down:=-15
Range("n").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Columns("A:A").ColumnWidth = 36.14
Columns("B:B").ColumnWidth = 47.43
Columns("C:C").ColumnWidth = 45.57
Columns("D:D").ColumnWidth = 45
Columns("E:E").ColumnWidth = 44.86
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
Columns("F:F").ColumnWidth = 44.71
Columns("G:G").ColumnWidth = 47
Range("I1").Select
Columns("H:H").ColumnWidth = 45
Columns("I:I").ColumnWidth = 45.29
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
Columns("J:J").ColumnWidth = 48.14
Columns("L:L").Select
Columns("K:K").ColumnWidth = 47.71
Selection.ColumnWidth = 45.86
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
Columns("M:M").ColumnWidth = 50
Columns("O:O").Select
Columns("N:N").ColumnWidth = 46.43
Selection.ColumnWidth = 42.71
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
Columns("P:P").ColumnWidth = 45.57
Columns("Q:Q").ColumnWidth = 45.43
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
Columns("R:R").ColumnWidth = 46.14
Columns("S:S").ColumnWidth = 44.86
Columns("T:T").ColumnWidth = 44.57
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
Columns("U:U").ColumnWidth = 44.86
Columns("V:V").ColumnWidth = 45.86
Columns("W:W").ColumnWidth = 49.71
Columns("Y:Y").Select
Columns("X:X").ColumnWidth = 44.14
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
Selection.ColumnWidth = 43.71
Columns("Z:Z").ColumnWidth = 43.86
ActiveWindow.ScrollColumn = 23
Columns("AA:AA").ColumnWidth = 46.43
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 1
Rows("3:3").RowHeight = 138
Rows("3:3").RowHeight = 105.75
Rows("3:3").EntireRow.AutoFit
End Sub

3 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
24 févr. 2015 à 17:16
Bonjour Geof, bonjour le forum,

Peut-être comme ça :

Sub Evolution()
Dim DL As Integer

Range("B10:F36").Copy
With Sheets("Evolution")
    DL = .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    .Cells(DL, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
       False, Transpose:=True
    .Columns("A:A").ColumnWidth = 36.14
    .Columns("B:B").ColumnWidth = 47.43
    .Columns("C:C").ColumnWidth = 45.57
    .Columns("D:D").ColumnWidth = 45
    .Columns("E:E").ColumnWidth = 44.86
    .Columns("F:F").ColumnWidth = 44.71
    .Columns("G:G").ColumnWidth = 47
    .Columns("H:H").ColumnWidth = 45
    .Columns("I:I").ColumnWidth = 45.29
    .Columns("J:J").ColumnWidth = 48.14
    .Columns("K:K").ColumnWidth = 47.71
    .Columns("L:L").ColumnWidth = 45.86
    .Columns("M:M").ColumnWidth = 50
    .Columns("N:N").ColumnWidth = 46.43
    .Columns("O:O").ColumnWidth = 42.71
    .Columns("P:P").ColumnWidth = 45.57
    .Columns("Q:Q").ColumnWidth = 45.43
    .Columns("R:R").ColumnWidth = 46.14
    .Columns("S:S").ColumnWidth = 44.86
    .Columns("T:T").ColumnWidth = 44.57
    .Columns("U:U").ColumnWidth = 44.86
    .Columns("V:V").ColumnWidth = 45.86
    .Columns("W:W").ColumnWidth = 49.71
    .Columns("Y:Y").ColumnWidth = 43.71
    .Columns("X:X").ColumnWidth = 44.14
    .Columns("Z:Z").ColumnWidth = 43.86
    .Columns("AA:AA").ColumnWidth = 46.43
    .Rows("3:3").RowHeight = 138
    .Rows("3:3").RowHeight = 105.75
    .Rows("3:3").EntireRow.AutoFit
End With
End Sub

0
Ca marche du tonnerre. Merci infiniment Thautheme (Très très bon pseudo au passage ^^)

Je vais pouvoir retourner à mes codes maintenant que j'ai eu de l'aide sur ce point. Tu m'enlèves une vraie épine du pied merci :)

Peace.
0
Tiens je reviens vers toi tu peux peut être m'aider.

J'avais écrit un code qui marchait très bien avec lotus note.

Seulement, dernièrement mon ordi a eu des galères... Notamment avec Lotus qui a cessé de fonctionner. Après réparation du problème, mon code ne fonctionne plus sur lotus.
Est ce que ca vient de mon code, ou de Lotus lors de la reconfiguration ??

Je te joins mon code pour que tu puisses voir si lors du bug de mon ordi, le code a pu craché.

Merci d'avance.


Sub Envoie()

Dim Destinataires(3) As String, Sujet As String
Dim AccuseReception As Boolean
'Modifier les mails des destinataires
Destinataires(1) = Range("G4").Value
Destinataires(2) = Range("G5").Value
Destinataires(3) = Range("G6").Value

Sujet = "Accompagnement entrant " & Range("B5").Value & Range("F4").Value
AccuseReception = True
'Nom de la feuille
ThisWorkbook.Sheets("Appels entrant").Copy
ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception
ActiveWorkbook.Close False
End Sub
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 févr. 2015 à 10:41
Bonjour Geof, bonjour le forum,

À priori, je ne vois pas de problème dans ton code. Le seul doute est :
ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception

Peut-on utiliser un tableau ou faut-il boucler ?
Mais je n'ai jamais utilisé Lotus... (à part pour m'essuyer le c.. mais c'était du papier...) et je n'ai jamais, non plus, utilisé ce genre de code pour envoyer des emails dans Excel. Je ne te serais donc d'aucune aide sur ce coup-là. Désolé...

0
C'est justement la ligne de code d'ou viens la faille ^^. Bon écoute ca marchait avant le crash de mon ordi, je vois pas pourquoi ca marcherai plus... Donc on va essayer comme ca... Mais merci quand même pour le reste de l'aide. (Moi aussi quelque fois j'aimerai m'essuyer le c.. avec ce lotus alakon)
0