Problème de transposition
Bonjour à tous,
Je commence tout juste VBA et nouvelle sur le forum et j'en ai besoin pour un projet sur lequel je bosse. J'aurai donc besoin de votre aide....
Ci-joint un fichier excel expliquant les transpositions que je dois effectuer.
Il faut savoir que dans ce fichier, le nombre de lignes et de colonnes est variable (c'est un résultat de modélisation avec des paramètres variables)
Voici le code que j'ai pu effectuer pour l'instant, mais la je bloque vraiment pour la suite, et plus particulièrement pour transposer les 2 premières lignes en colonnes, puisqu'elles doivent être copiées du nombre de valeurs de chaque colonne).
Et j'ai également un problème pour copier la première colonne du nombre de fois désiré.
Code:
Sub test_3()
Dim CL As Range
For Each CL In Range("A3:A" & Range("A64000").End(xlUp).Row) 'select the time column'
CL.NumberFormat = "YYYYMMDDhhmmss" 'change date format for arcgis'
Next
For i = 1 To 19
Range("A3" & Range("A64000").End(xlUp).Row).Copy _
Destination:=Range("A65536").End(xlUp)(2)
Range("B3" & Range("B64000").End(xlUp).Row).Copy _
Destination:=Range("B65536").End(xlUp)(2)
Next i 'copy paste the time and second for each node'
Range("C1:C65536").Clear
ligne = 3
For n = 3 To 100
For m = 3 To Cells(65536, n).End(xlUp).Row
' If Cells(m, n) <> 0 Then
Cells(ligne, 3) = Cells(m, n)
ligne = ligne + 1
' End If
Next m
Next n
Range("D:Z").Clear
End Sub
Merci d'avance pour vos réponses.
Aure
Salut Aure et bienvenue sur le Forum,
Je trouve que ton code comporte plusieurs anomalies et je t'en propose un nouveau à la place.
Regarde déjà si ça va dans le sens que tu espères et on pourra corriger le tir en fonction de tes remarques. Fais éventuellement des essais avec plus de colonnes et plus de lignes.
Je n'ai pas encore prévu l'effacement des anciennes données reportées : dans mon fichier exemple, celles qui seront inscrites par le code mis en place derrière le bouton "Go".
Cordialement.
Re-Bonjour,
Merci beaucoup pour la réponse, cela m'a énormément aidé et désolée pour le délai avec lequel je réponds.
J'ai donc regardé le code et je l'ai essayé sur un fichier avec plus de colonnes et de lignes.
J'ai également déplacé la plage résultat en A1 et supprimé les données initiales.
Il reste cependant quelques petites choses. J'ai changé le format de date de la première colonne, mais il semble qu'il ne le prenne pas en compte car rien ne change.
De plus, une fois que le code a tourné, il y a des boutons de contrôle de formulaire qui apparaissent sur la feuille.
Je mets en pièce jointe le fichier que j'ai modifié.
Merci encore pour l'aide,
Cordialement,
Aure
J'ai fait quelques recherches concernant le problème de format des dates et j'en suis venue à ce code qui a l'air de marcher.
Dim Lig As Long, TB
For Lig = 2 To Range("A65536").End(xlUp).Row
TB = Split(Cells(Lig, 1), "/")
Cells(Lig, 1) = Format(CDate(TB(1) & "/" & TB(0) & "/" & TB(2)), "YYYYMMDDhhmmss")
Next Lig
Range("A2:A" & Range("A64000").End(xlUp).Row).Select
Selection.NumberFormat = "0"
Il ne resterai plus que le problème du bouton de contrôle de formulaire qui apparaît systématiquement à chaque fois que le code tourne.
Cordialement,
Aure
Salut Aure,
Le dernier fichier que tu fournis ne ressemble plus trop au premier
Sur ce dernier fichier fourni - avant tes dernières modifications semple-t-il - je ne vois pas de bouton.
Comment se présente ton nouveau fichier avant de lancer la macro ? Comment déclenches-tu cette macro ?
Cordialement.
Re-bonjour,
Le dernier fichier que j'ai envoyé est du même type que le premier, cependant avec plus de lignes et colonnes. (le premier était un fichier simplifié).
Le fichier que je renvoie est un peu moins gros que celui d'avant et a l'air de marcher.
Merci beaucoup pour votre précieuse aide en tout cas,
Cordialement,
.. mais en plus il comportait deux feuilles et plus de boutonAure a écrit :Le dernier fichier que j'ai envoyé est du même type que le premier, cependant avec plus de lignes et colonnes.
... donc tu n'attends plus d'aide de notre partAure a écrit :Le fichier que je renvoie est un peu moins gros que celui d'avant et a l'air de marcher.
Si c'est bien le cas, tu peux indiquer ton fil comme "Résolu" (clique sur la petite flêche verte dans l'un de tes messages).
Cordialement.