Excel VBA : transposer résultat calcul

Résolu
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

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour

    essaies
    Sub 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
    
    0
  2. Grandjean
     
    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
    0