Excel VBA : transposer résultat calcul
Résolu
Grandjean
-
Grandjean -
Grandjean -
Bonjour,
Je travaille sous Excel 2007.
Je suis en train de développer des applications de gestion pour mon association avec Excel, et notamment en utilisant Excel comme base de données.
Dans mon formulaire (construit non pas avec un userform, mais avec une feuille excel classique), j'ai intégré des formules de calcul.
Lorsque je transpose les données, je perd le résultat du calcul.
Y a t'il une solution à ce problème ? J'avoue avoir cherché sur le net sans trouver de solution compréhensible à l'utilisateur que je suis.
Pour faciliter la compréhension, voici la macro que j'utilise pour transposer les données :
Sub Creation_Article()
'Atteindre le formulaire ARTICLE et mémoriser les données
Sheets("Form_Article").Select
Range("B1:B5").Select
Selection.Copy
'test pour identifier ligne libre
Sheets("Base_Article").Select
valeurA2 = Range("A2").Value
If valeurA2 = "" Then
Range("A2").Select
Else
Range("A1").Select
Selection.End(xlDown).Select
ligne_active_baseA = ActiveCell.Row
Range("A" & ligne_active_baseA + 1).Select
End If
'mémorise le numéro de la ligne où coller les données
ligne_active_baseA = ActiveCell.Row
'collage avec transposition
Range("A" & ligne_active_baseA).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, operation:=xlNone, skipblanks:=False, transpose:=True
'trier les articles par ordre croissant
Range("A1:E1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'rendre vierge le formulaire
Sheets("Form_Article").Select
Range("B1:B3").ClearContents
Range("B5").ClearContents
Range("B1").Select
'retourner dans le tableau
Sheets("Base_Article").Select
Range("A1").Select
End Sub
Merci par avance pour votre aide.
Bon après-midi,
Jean
Je travaille sous Excel 2007.
Je suis en train de développer des applications de gestion pour mon association avec Excel, et notamment en utilisant Excel comme base de données.
Dans mon formulaire (construit non pas avec un userform, mais avec une feuille excel classique), j'ai intégré des formules de calcul.
Lorsque je transpose les données, je perd le résultat du calcul.
Y a t'il une solution à ce problème ? J'avoue avoir cherché sur le net sans trouver de solution compréhensible à l'utilisateur que je suis.
Pour faciliter la compréhension, voici la macro que j'utilise pour transposer les données :
Sub Creation_Article()
'Atteindre le formulaire ARTICLE et mémoriser les données
Sheets("Form_Article").Select
Range("B1:B5").Select
Selection.Copy
'test pour identifier ligne libre
Sheets("Base_Article").Select
valeurA2 = Range("A2").Value
If valeurA2 = "" Then
Range("A2").Select
Else
Range("A1").Select
Selection.End(xlDown).Select
ligne_active_baseA = ActiveCell.Row
Range("A" & ligne_active_baseA + 1).Select
End If
'mémorise le numéro de la ligne où coller les données
ligne_active_baseA = ActiveCell.Row
'collage avec transposition
Range("A" & ligne_active_baseA).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, operation:=xlNone, skipblanks:=False, transpose:=True
'trier les articles par ordre croissant
Range("A1:E1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'rendre vierge le formulaire
Sheets("Form_Article").Select
Range("B1:B3").ClearContents
Range("B5").ClearContents
Range("B1").Select
'retourner dans le tableau
Sheets("Base_Article").Select
Range("A1").Select
End Sub
Merci par avance pour votre aide.
Bon après-midi,
Jean
2 réponses
-
bonjour
essaiesSub Creer_Article() Dim lig As Integer With Sheets("Base_Article") lig = .Columns("A").Find("", .Range("A1"), xlValues).Row .Cells(lig, "A").Resize(1, 5) = Application.Transpose(Sheets("Form_Article").Range("B1:B5").Value) .Range("A2:E" & lig).Sort .Range("A2") End With With Sheets("Form_Article") .Range("B1:B3").ClearContents .Range("B5").ClearContents .Range("B1").Select End With Sheets("Base_Article").Activate End Sub -
Merci beaucoup Michel, pour ton aide efficace.
J'ai "bêtement" copier ta macro et cela fonctionne parfaitement.
Ta macro a l'air beaucoup plus simple que la mienne en plus, même si je ne comprends pas encore bien les différences, j'espère pouvoir reproduire !
Encore merci et bonne soirée,
Jean