J'aimerais savoir s'il est possible (et surtout comment faire) pour ajouter un bouton dont la vocation serait d'ajouter le contenu de toutes les cellules d'une colonne au contenu d'une autre colonne.
Par exemple, je possède les données de ce tableau et j'aimerais ajouter le contenu des cellules de B dans A :
Sub a()
Dim t, tt, i&, j&
t = [A1].CurrentRegion.Value
ReDim tt(1 To UBound(t))
For i = LBound(t) To UBound(t)
tt(i) = t(i, 1) + t(i, 2)
Next
Range("A1").Resize(UBound(tt)) = Application.Transpose(tt)
Range("B1").Resize(UBound(tt)) = 0
End Sub
Option Explicit
Sub Calcul()
Dim i As Integer
For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
Cells(i, 1) = Cells(i, 1) + Cells(i, 2)
Next
[B:B] = ""
End Sub
Avec mon exemple, ça marche parfaitement, mais quand je souhaite l'adapter pour qu'il fonctionne avec mon tableau fini, l'erreur "L'indice n'appartient pas à la sélection" apparaît.
Mon tableau utilise les colonnes C et E depuis la ligne 6, j'aurais du le préciser avant, merci beaucoup quand même !
NB: Quoique, histoire d'embellir mon karma et avant d'enfiler mon pyjama en pilou
Un dernier code
VB:
Sub b()
Dim t, tt, i&, j&
t = [C6:E8].Value
ReDim tt(1 To UBound(t))
For i = LBound(t) To UBound(t)
tt(i) = t(i, 1) + t(i, 3)
Next
Range("C6").Resize(UBound(tt)) = Application.Transpose(tt)
Range("E6").Resize(UBound(tt)) = 0
End Sub
Sub Test()
With Range("e6:e" & Cells(Rows.Count, "e").End(xlUp).Row)
.Copy
.Offset(, -2).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
.Value = 0
End With
End Sub
Parce que vous avez été plus rapide que moi, j'ai utilisé le code de Calvus et simplement modifié les valeurs des cells, j'allais le posté, mais reposté l'exact code que celui de Calvus me semblais pas très utile.