Réaliser un tableau par macro

Bonjour le forum,

J'ai un tableau avec des données mis à jour quotidiennement (donc ajout de ligne fréquent), et j'aimerais créer un tableau à coter avec des calculs par macro. Vous trouverez le tableau initiale ainsi que sur la droite le tableau avec les calculs en pj.

Aussi j'aimerais que cette macro soi exécuter depuis la seconde feuille. Le code doit probablement contenir des variable et des boucles, mais je suis encore débutant en VBA.

Merci d'avance

Bonjour,

Voici un essai qui donne exactement les valeurs demandées:

Bonjour

Merci pour votre aide et pour m'avoir accorder de votre temps. Le code marche à merveille c'est ce que j'attendais. Cependant il faut lancer la macro dans la feuille 2 pour l'afficher dans la feuille 1. La feuille 2 ne doit contenir seulement que le bouton pour lancer la macro. Les calculs doivent se baser avec le premier tableau dans la première feuille.

Pouvez-vous me faire cela s'il vous plait ?

Cordialement

Bonjour Yassdu782

Il faudrait peut-être commencer par vous former un peu à VBA

Votre question est la base de la programmation objet

Sub transformation()
  Dim dLig As Long
  Dim Tableau As Variant

 ' initialisations
  dLig = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
  Tableau = Sheets("Feuil1").Range("A1:M" & dLig)

  'transformation
  For lig = LBound(Tableau, 1) + 1 To UBound(Tableau, 1)
    For col = UBound(Tableau, 2) To 3 Step -1 'on ignore les 2 premières colonnes
      If Tableau(lig, col) > 0 And Tableau(lig, col - 1) > 0 Then 'si on a une suite
        If Tableau(lig, col) > Tableau(lig, col - 1) Then
          Tableau(lig, col) = Tableau(lig, col) - Tableau(lig, col - 1)
        Else
          Tableau(lig, col) = 0
        End If
      End If
    Next col
  Next lig
  'export du résultat
  Sheets("Feuil1").Range("Q1").Resize(UBound(Tableau, 1), UBound(Tableau, 2)).Value = Tableau
End Sub

A+

Bonjour Yassdu782

Il faudrait peut-être commencer par vous former un peu à VBA

Votre question est la base de la programmation objet

Sub transformation()
  Dim dLig As Long
  Dim Tableau As Variant

 ' initialisations
  dLig = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
  Tableau = Sheets("Feuil1").Range("A1:M" & dLig)

  'transformation
  For lig = LBound(Tableau, 1) + 1 To UBound(Tableau, 1)
    For col = UBound(Tableau, 2) To 3 Step -1 'on ignore les 2 premières colonnes
      If Tableau(lig, col) > 0 And Tableau(lig, col - 1) > 0 Then 'si on a une suite
        If Tableau(lig, col) > Tableau(lig, col - 1) Then
          Tableau(lig, col) = Tableau(lig, col) - Tableau(lig, col - 1)
        Else
          Tableau(lig, col) = 0
        End If
      End If
    Next col
  Next lig
  'export du résultat
  Sheets("Feuil1").Range("Q1").Resize(UBound(Tableau, 1), UBound(Tableau, 2)).Value = Tableau
End Sub

A+

Je ne peux que rejoindre votre avis!

En effet changer la source et la sortie c'est vraiment la base de la compréhension du code, ça serait bien de se former maintenant que nous avons fait le plus dur

Merci beaucoup !

Je commence petit à petit à comprendre, mais pas la totalité ...

Je prend note ;)

Amicalement

Rechercher des sujets similaires à "realiser tableau macro"