Incrémentation d'une cellule sur des feuilles successives

  • Initiateur de la discussion Initiateur de la discussion dephazz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

dephazz

Guest
Bonjour,

Je cherche à incrémenter une cellule A4 (où la valeur est 1) de la feuille nommée 2009 SEM1, de +1 dans la cellule A4 de la feuille suivante nommée 2009 SEM2 et ainsi de suite.
J'y arrive pas, il me garde la formule ='2009 SEM1'!A4+1 dans les feuilles suivantes et je reste à ...2.
J'aimerai avoir comme formule dans la cellule A4 de la feuille 2009 SEM3 : ='2009 SEM2'!A4+1
Merci de votre aide 🙂
 
Re : Incrémentation d'une cellule sur des feuilles successives

Bonsoir dephazz,

Je comprends que vous voulez incrémenter dans une feuille la valeur de la même cellule située dans la feuille précédente.

Voici une solution :

- télécharger (gratuitement) sur le net la macro complémentaire Morefunc, vous y trouverez la fonction DECALERFEUILLE

- sélectionner ensemble les feuilles concernées (très simple s'il s'agit de toutes les feuilles : clic droit sur un onglet)

- entrer en A4 d'une feuille la formule :

=DECALERFEUILLE(A4;-1)+1

Elle se retrouvera sur toute les feuilles sélectionnées.

A+
 
Re : Incrémentation d'une cellule sur des feuilles successives

Effectivement cela fonctionne ,sauf que dans mon cas, cette cellule sert à renseigner automatiquement le nom de la feuille par une macro et que la cellule ne s'incrémente de +1 qu'après cette macro. Du fait de cette séquence (macro puis après incrémentation +1), j'ai un message d'erreur lié à la macro qui ne voit pas la cellule s'incrémenter de suite au moment du copier-coller et considère que le nom n'est pas valide puisque la feuille précédente le porte déjà. N'y a t-il pas une astuce plus rapide ?
 
Re : Incrémentation d'une cellule sur des feuilles successives

Re,

Si je comprends bien, vous utilisez une macro pour renommer les feuilles.

Cela n'a plus rien à voir avec le problème simple posé dans ce fil (cellules A4...).

Si vous rencontrez un problème avec votre macro, prenez le temps de bien le présenter, pour que l'on comprenne, et ouvrez une autre discussion.

A+
 
Re : Incrémentation d'une cellule sur des feuilles successives

Bonsoir Job Dephazz le forum,
bah comme dab, un petit bout de fichier avec un exemple et des explications dans le fichiers, aurait certainement permis de faire ce que tu voulais Dephazz !!!
enfin c'est mon avis et c'était surtout pour saluer Job
bonne soirée à tous
papou
 
Re : Incrémentation d'une cellule sur des feuilles successives

Bonsoir,
La macro qui gère le nom des feuilles fonctionne très bien (vient de JOB75 🙂). C'est le DECALERFEUILLE associé à cette macro qui ne va pas lorsque l'on copie la feuille pour la coller et incrémenter la suivante.
ci-joint un extrait du fichier
Merci et bonne soirée
 

Pièces jointes

Re : Incrémentation d'une cellule sur des feuilles successives

Bonsoir dephazz, papou 🙂

Papou avait raison, il suffisait du fichier pour comprendre le problème.

Alors ne pas utiliser de formule DECALERFEUILLE !

Modifier la macro dans ThisWorkbook ainsi :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
Dim i As Byte
On Error Resume Next 'sécurité
If Sh.Index = 1 And Source.Address = "$A$4" Then
  If IsNumeric(CStr(Source)) Then
    Application.ScreenUpdating = False 'fige l'écran
    For i = 1 To Sheets.Count
      Sheets(i).Name = i 'nomme provisoirement les feuilles 1 2 3 4...
    Next
    For i = 2 To Sheets.Count
      Sheets(i).[A4] = Sheets(i - 1).[A4] + 1 'ce qui redéclanche cette macro
    Next
  End If
End If
Sh.Name = Sh.Range("A1")
End Sub

A+
 

Pièces jointes

Re : Incrémentation d'une cellule sur des feuilles successives

Bonjour Dephazz Job le forum,
oui Dephazz, avec le bout de fichier au moins tout est visible et plus facile à comprendre et surtout cela permet d'avoir une réponse exacte au sujet;
Bonne journée à tous
a+
papou 🙂
 
Re : Incrémentation d'une cellule sur des feuilles successives

Bonjour dephazz, le fil, le forum,

Oui c'est vrai, vous faites du copier/coller de feuilles.

La macro modifiée et améliorée :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
If Intersect(Source, Sh.[[COLOR="Red"]A1:[/COLOR]A4]) Is Nothing Then Exit Sub
Dim F As Object, i As Integer 'Integer au cas où le nombre de feuilles dépasse 254
Application.ScreenUpdating = False 'fige l'écran
On Error Resume Next
Set F = ActiveSheet
Worksheets(1).Activate
If F.Index > 1 Then [A4] = [A4] 'déclanche cette macro
If Sh.Index = 1 And IsNumeric(CStr([A4])) Then
  For i = 1 To Worksheets.Count
    Worksheets(i).Name = i 'nomme provisoirement les feuilles 1 2 3 4...
  Next
  For i = 2 To Worksheets.Count
    [COLOR="Red"]Worksheets(i).[A1:A3] = [A1:A3].Formula 'déclanche cette macro[/COLOR]
    Worksheets(i).[A4] = [A4] + i - 1 'déclanche cette macro
  Next
End If
Sh.Name = Sh.[A1]
F.Activate
End Sub

Edit : ajouté code en rouge qui interdit l'effacement de A1:A3.

A+
 

Pièces jointes

Dernière édition:
Re : Incrémentation d'une cellule sur des feuilles successives

Bonjour dephazz Job le forum
Job un petit bouton ajout de feuille serait tout de même plus simple pour Dephazz pourquoi s'emmerder avec du copier coller?
enfin moi c'est ce que je ferais
a+ bonne appétit
Papou
 
Re : Incrémentation d'une cellule sur des feuilles successives

Bonjour,
Merci job75.
Maintenant, ça fonctionne. 🙂
Sympa votre idée, Paritec. Pourquoi pas un petit bouton qui rajoute des feuilles en avant de la précédente, demande combien on en veut et fait du copier-coller ? 🙄
 
Dernière modification par un modérateur:
Re : Incrémentation d'une cellule sur des feuilles successives

Re,

Avant l'histoire du bouton pour le copier/coller, il faut savoir si dans le fichier il y aura une seule année ou plusieurs. Merci de préciser.

Dans cette version (3), on peut travailler sur plusieurs années :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
If Intersect(Source, Sh.[A1:A4]) Is Nothing Then Exit Sub
Dim F As Object, nbase As Integer, i As Integer 'Integer au cas où le nombre de feuilles dépasse 254
Application.ScreenUpdating = False 'fige l'écran
On Error Resume Next
Set F = ActiveSheet
If Sh.[A2] = "" Then Sh.[A2] = Sheets(Sh.Index - 1).[A2] 'copie l'année
For nbase = Sh.Index - 1 To 1 Step -1
  If Worksheets(nbase).[A2] <> Sh.[A2] Then Exit For
Next
nbase = nbase + 1 'n° 1ère feuille de l'année
Worksheets(nbase).Activate
If F.Index <> nbase Then [A4] = [A4] 'déclanche cette macro
If Sh.Index = nbase And IsNumeric(CStr([A4])) Then
  For i = nbase To Worksheets.Count
    If Worksheets(i).[A2] <> [A2] Then Exit For
    Worksheets(i).Name = i 'nomme provisoirement les feuilles 1 2 3 4...
  Next
  For i = nbase + 1 To Worksheets.Count
    If Worksheets(i).[A2] <> [A2] Then Exit For
    Worksheets(i).[A1:A3] = [A1:A3].Formula 'déclanche cette macro
    Worksheets(i).[A4] = [A4] + i - nbase 'déclanche cette macro
  Next
End If
Sh.Name = Sh.[A1]
F.Activate
End Sub

Alors version (2) ou version (3) ?

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
553
Retour