Re : Additionner deux cellules par macro
Bonjoru le forum
Merci Roland pour ton fichier, j'ai gratté pas mal et j'aui réussi a l'adatpter a mon projet. voici le code tranformer, je pense qu'il doit y avoir plus simple, mais le principal y est cela fonctionne.
Un grand merci une nouvelle fois
Cordialement,
Private Sub CommandButton37_Click()
Dim Reponse As Variant 'pour Msgbox
Application.ScreenUpdating = False
DateRecherche$ = ActiveSheet.Cells(1, "F") 'la date en F1 Feuil(1)
x = ActiveWorkbook.Name
'============================
'POUR LES DEUX FICHIER
ValeurSource = Val(ActiveSheet.Range("A3")) 'valeur en "A3" Feuil(1)
ValeurSource1 = Val(ActiveSheet.Range("A4")) 'valeur en "A4" Feuil(1)
ValeurSource2 = Val(ActiveSheet.Range("A5")) 'valeur en "A5" Feuil(1)
ValeurSource3 = Val(ActiveSheet.Range("A6")) 'valeur en "A6" Feuil(1)
'z2 m2
ValeurSource4 = Val(ActiveSheet.Range("A10")) 'valeur en "A6" Feuil(1)
ValeurSource5 = Val(ActiveSheet.Range("A13")) 'valeur en "A6" Feuil(1)
'z1a z1b z1c
ValeurSource6 = Val(ActiveSheet.Range("A11")) 'valeur en "A6" Feuil(1)
ValeurSource7 = Val(ActiveSheet.Range("A14")) 'valeur en "A6" Feuil(1)
ValeurSource8 = Val(ActiveSheet.Range("A17")) 'valeur en "A6" Feuil(1)
'======================================
Windows("STAT INTERIMAIRE.xls").Activate
DernLig = Sheets("BASE").Columns("B").End(xlDown).Row 'dern lig des dates en colonne(B)
'recherche date en colonne B Feuil(BASE)
'==========================================
For L = 2 To DernLig
d$ = Sheets("BASE").Cells(L, "B")
If d$ = DateRecherche$ Then
If Sheets("BASE").Cells(L, "C") > 0 Then 'si valeur demande pour additionner
M$ = "Il y a déjà une valeur dans la cellule de destination" & vbLf & _
"Voulez-vous l'additionner ?" & vbLf & "(sinon elle sera coller simplement)"
Reponse = MsgBox(M$, vbQuestion + vbYesNoCancel, "Coller valeur")
If Reponse = vbYes Then
Sheets("BASE").Cells(L, "C") = Sheets("BASE").Cells(L, "C") + ValeurSource
ElseIf Reponse = vbNo Then
Sheets("BASE").Cells(L, "C") = ValeurSource
End If
Else 'si aucune valeur colle directement
Sheets("BASE").Cells(L, "C") = ValeurSource
End If
End If
Next
'================================================
For L = 2 To DernLig
d$ = Sheets("BASE").Cells(L, "B")
If d$ = DateRecherche$ Then
If Sheets("BASE").Cells(L, "D") > 0 Then 'si valeur demande pour additionner
M$ = "Il y a déjà une valeur dans la cellule de destination" & vbLf & _
"Voulez-vous l'additionner ?" & vbLf & "(sinon elle sera coller simplement)"
Reponse = MsgBox(M$, vbQuestion + vbYesNoCancel, "Coller valeur")
If Reponse = vbYes Then
Sheets("BASE").Cells(L, "D") = Sheets("BASE").Cells(L, "D") + ValeurSource1
ElseIf Reponse = vbNo Then
Sheets("BASE").Cells(L, "D") = ValeurSource1
End If
Else 'si aucune valeur colle directement
Sheets("BASE").Cells(L, "D") = ValeurSource1
End If
End If
Next
'=======================================================
For L = 2 To DernLig
d$ = Sheets("BASE").Cells(L, "B")
If d$ = DateRecherche$ Then
If Sheets("BASE").Cells(L, "E") > 0 Then 'si valeur demande pour additionner
M$ = "Il y a déjà une valeur dans la cellule de destination" & vbLf & _
"Voulez-vous l'additionner ?" & vbLf & "(sinon elle sera coller simplement)"
Reponse = MsgBox(M$, vbQuestion + vbYesNoCancel, "Coller valeur")
If Reponse = vbYes Then
Sheets("BASE").Cells(L, "E") = Sheets("BASE").Cells(L, "E") + ValeurSource2
ElseIf Reponse = vbNo Then
Sheets("BASE").Cells(L, "E") = ValeurSource2
End If
Else 'si aucune valeur colle directement
Sheets("BASE").Cells(L, "E") = ValeurSource2
End If
End If
Next
'=======================================================
For L = 2 To DernLig
d$ = Sheets("BASE").Cells(L, "B")
If d$ = DateRecherche$ Then
If Sheets("BASE").Cells(L, "F") > 0 Then 'si valeur demande pour additionner
M$ = "Il y a déjà une valeur dans la cellule de destination" & vbLf & _
"Voulez-vous l'additionner ?" & vbLf & "(sinon elle sera coller simplement)"
Reponse = MsgBox(M$, vbQuestion + vbYesNoCancel, "Coller valeur")
If Reponse = vbYes Then
Sheets("BASE").Cells(L, "F") = Sheets("BASE").Cells(L, "F") + ValeurSource3
ElseIf Reponse = vbNo Then
Sheets("BASE").Cells(L, "F") = ValeurSource3
End If
Else 'si aucune valeur colle directement
Sheets("BASE").Cells(L, "F") = ValeurSource3
End If
End If
Next
'=======================================================
For L = 2 To DernLig
d$ = Sheets("BASE").Cells(L, "B")
If d$ = DateRecherche$ Then
If Sheets("BASE").Cells(L, "G") > 0 Then 'si valeur demande pour additionner
M$ = "Il y a déjà une valeur dans la cellule de destination" & vbLf & _
"Voulez-vous l'additionner ?" & vbLf & "(sinon elle sera coller simplement)"
Reponse = MsgBox(M$, vbQuestion + vbYesNoCancel, "Coller valeur")
If Reponse = vbYes Then
Sheets("BASE").Cells(L, "G") = Sheets("BASE").Cells(L, "G") + ValeurSource4
ElseIf Reponse = vbNo Then
Sheets("BASE").Cells(L, "G") = ValeurSource4
End If
Else 'si aucune valeur colle directement
Sheets("BASE").Cells(L, "G") = ValeurSource4
End If
End If
Next
'=======================================================
For L = 2 To DernLig
d$ = Sheets("BASE").Cells(L, "B")
If d$ = DateRecherche$ Then
If Sheets("BASE").Cells(L, "H") > 0 Then 'si valeur demande pour additionner
M$ = "Il y a déjà une valeur dans la cellule de destination" & vbLf & _
"Voulez-vous l'additionner ?" & vbLf & "(sinon elle sera coller simplement)"
Reponse = MsgBox(M$, vbQuestion + vbYesNoCancel, "Coller valeur")
If Reponse = vbYes Then
Sheets("BASE").Cells(L, "H") = Sheets("BASE").Cells(L, "H") + ValeurSource5
ElseIf Reponse = vbNo Then
Sheets("BASE").Cells(L, "H") = ValeurSource5
End If
Else 'si aucune valeur colle directement
Sheets("BASE").Cells(L, "H") = ValeurSource5
End If
End If
Next
'=======================================================
Workbooks(x).Activate
Unload Me
End Sub