Microsoft 365 Addition d'une colonne avec 2 devises différentes

g.chambo

XLDnaute Nouveau
Bonjour,
Je travaille avec Xls en anglais et je souhaite faire l'addition d'une colonne qui contient deux devises CHF et €. Le résultat devrait être affiché en CHF dans la feuille Parameter en E5.
La colonne à additionner est dans la feuille "Article" en colonne G.
J'ai fouillé dans le forum mais je n'ai pas réussi à le faire
Merci pour votre aide
Gilbert
 
Dernière modification par un modérateur:
Solution
Bonjour Gilbert,

bienvenue sur le site XLD ! :)

ton fichier en retour ; sur la feuille "Parameter", fais Ctrl e

VB:
Sub Essai()
  If ActiveSheet.Name <> "Parameter" Then Exit Sub
  Dim t1@, t2@, v@, p As Byte, n&, k&, i&
  With Worksheets("Article")
    n = .ListObjects("Table15").ListRows.Count: If n = 0 Then Exit Sub
    For i = 1 To n
      k = i + 5
      With .Cells(k, 7)
        v = .Value
        If v <> 0 Then
          p = InStr(.NumberFormat, "CHF")
          If p > 0 Then t1 = t1 + v Else t2 = t2 + v
        End If
      End With
    Next i
  End With
  [F5] = t1: [G5] = t2
End Sub

Bonsoir David, oooooppps ! j'avais pas vu la feuille "Supplier" ! j'ai travaillé que sur les 2...​

soan

XLDnaute Barbatruc
Inactif
Bonjour Gilbert,

bienvenue sur le site XLD ! :)

ton fichier en retour ; sur la feuille "Parameter", fais Ctrl e

VB:
Sub Essai()
  If ActiveSheet.Name <> "Parameter" Then Exit Sub
  Dim t1@, t2@, v@, p As Byte, n&, k&, i&
  With Worksheets("Article")
    n = .ListObjects("Table15").ListRows.Count: If n = 0 Then Exit Sub
    For i = 1 To n
      k = i + 5
      With .Cells(k, 7)
        v = .Value
        If v <> 0 Then
          p = InStr(.NumberFormat, "CHF")
          If p > 0 Then t1 = t1 + v Else t2 = t2 + v
        End If
      End With
    Next i
  End With
  [F5] = t1: [G5] = t2
End Sub

Bonsoir David, oooooppps ! j'avais pas vu la feuille "Supplier" ! j'ai travaillé que sur les 2 feuilles "Article" et "Parameter" ; le nouveau fichier joint contient ces 2 feuilles, et aussi "Booking" : elles n'ont pas de données confidentielles, et "Booking" est obligatoire pour éviter des #REF! en feuille "Article" (y compris en colonne G ➯ exo impossible à faire !) ; le fichier ci-dessous a donc seulement 3 feuilles en tout, et ma macro fonctionne comme avant, sans avoir modifié le code VBA.​

soan
 

Pièces jointes

  • KANBAN.xlsm
    39.4 KB · Affichages: 5
Dernière édition:

Phil69970

XLDnaute Barbatruc
Bonjour à tous

Je te propose ceci :
Le code met le total € et CHF automatiquement des que les valeurs de la feuille Article changent.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Derlig&, i&, VarCHF#
With Worksheets("Article")
    Derlig = .Range("B" & Rows.Count).End(xlUp).Row
    
    For i = 6 To Derlig
        If .Range("G" & i).NumberFormat = "_-* #,##0.00 [$CHF-100C]_-;-* #,##0.00 [$CHF-100C]_-;_-* ""-""?? [$CHF-100C]_-;_-@_-" Then
              VarCHF = .Range("G" & i).Value + VarCHF
        End If
    Next i
End With

With Worksheets("Parameter")
    .[F5] = VarCHF:    .[F5].NumberFormat = "_-* #,##0.00 [$CHF-100C]_-;-* #,##0.00 [$CHF-100C]_-;_-* ""-""?? [$CHF-100C]_-;_-@_-"
    .[G5] = .[E5] - .[F5]:    .[G5].NumberFormat = "_-[$€-2] * #,##0.00_ ;_-[$€-2] * -#,##0.00 ;_-[$€-2] * ""-""??_ ;_-@_ "
End With

End Sub

Je te laisse mettre le code ici (Voir image)

1615313979020.png


@Phil69970
 

Discussions similaires

Statistiques des forums

Discussions
315 146
Messages
2 116 758
Membres
112 852
dernier inscrit
Professeur 7