Re : Un bouton pour faire "+1"
Raymond Lasc à dit:
Merci beaucoup Joss.
Oui je crois que tu as tout compris. Moi par contre pas sur. En fait je vais prendre un peu de temps pour étudier dans le détail comment tu as construis cette macro. Et essayer de reproduire.
Y a t il un endroit où je puisse trouver la signification des formules ? C'est à dire à quoi signifie range, Sheets etc...
En tous cas, merci, ca me parait même un peu magique... Si tu as un conseil qui te viens, n'hésite pas, je suis tout ouï.
Merci Joss.🙂
Salut à tous
code de joss56
Sub Bouton1_QuandClic()
With Sheets(1)
.Range("a1") = .Range("a1") + Sheets("Feuil2").Range("b1") + 1
.Range("a2") = .Range("a2") + Sheets("Feuil2").Range("b2") + 1
.Range("a3") = .Range("a3") + Sheets("Feuil2").Range("b3") + 1
End With
End Sub
Sub défini qui ce qui suit est une macro. Quand tu mets le nom derrière et que tu vas à la ligne, Excel rajoute les parenthèses et le End Sub
End Sub Clôture la macro
with...End With ajout ce qui suit With devant toutes les instructions qui contiennent un séparateur de termes ("." ou "!"). :
With Sheets(1)
.Range("a1") = .Range("a1") + Sheets("Feuil2").Range("b1") + 1
End With
s'écrit quand on est pas assez feignant
😛 :
Sheets(1).Range("a1") = Sheets(1).Range("a1") + Sheets("Feuil2").Range("b1") + 1
Sheets collection de l'ensemble des feuilles d'un classeur. Quand on veut atteindre une seule feuille, on peut la définir soit par sont indice :
Sheets(1) fait référence 1re feuille du classeur
Sheets(2) fait référence 2me feuille du classeur
(mais ça dépend de l'emplacement de la feuille qui peut évomuer), soit par son nom
Sheets("feuil1") fait référence à la feuille "feuil1"
Dans une macro, l'absence de référence à la feuille veut dire qu'elle travaille sur la feuille active (ActiveSheet).
Pour définir une cellule, il y a différente instructions qui le permettent : ici la méthode Range
Range("A1") se traduirait en formule par $A$1 ou R(1)C(1)
donc en formule Excel (désolé, mais en macro, t'es obligé d'utiliser un langage compréhensible par le p'tit mec qui pédale derrière le VBA) l'instruction se traduirait comme ça :
Sheets(1).Range("a1") = Sheets(1).Range("a1") + Sheets("Feuil2").Range("b1") + 1
=> la 1re feuille=feuil1 et la 2me=feuil2
feuil1!$A$1 = feuil1!$A$1 + feuil2!$B$1 + 1
Pas très compliqué, mais assez complexe pour alimenter ce forum (et d'autres). Ton style de problème ne pouvant être résolu que par macro (ou manuellement évidemment), soit tu continues à te fatiguer les doigts, soit tu apprends le VBA dans ton coin, soit tu profites du forum pour te faire du code avec des explications et t'en profites pour apprendre.
A+