Incrémentation automatique avec écart fixe entre des cellules

rulesback

XLDnaute Nouveau
Bonjour tout le monde,

Comme vous allez voir dans le fichier associé, j'ai un problème qui probablement nécessitera le recours au VBA (dont je connais peu)

Ce que je veux faire c'est placer une cellule (A1 par exemple) dans une autre (e.g C1) à partir d'un tableau, laisser 4 lignes vides, et placer la cellule suivante (non A2 mais A3) dans C5, A5 dans C9....etc

* D’où on prend: On saute chaque fois une ligne: e.g on prend les cellules A1 A3 A5 A7....
* Où on place: On laisse toujours 4 lignes vides, exemple: C1 C6 C11 C16.....

Exemple:

On a:

A1: Opération A
A2: Atelier
A3: Opération B
A4: usine
A5: Opération C
A6: atelier 2

Ce que j'aimerais atteindre comme résultat:
C1: A1 (i.e Opération A)
C6: A3 (Opération B)
C11: A5 (Opération C)
C16: A7 (Opération D)
..
..
..

NB: l'incrémentation automatique n'a pas donné le résultat recherché!


Merci
 

Pièces jointes

  • exemple.xlsx
    12.7 KB · Affichages: 32
  • exemple.xlsx
    12.7 KB · Affichages: 31
Dernière modification par un modérateur:

Papou-net

XLDnaute Barbatruc
Re : Incrémentation automatique avec écart fixe entre des cellules

Bonjour rulesback, et bienvenue sur XLD,

Vois si la solution en PJ répond à ta question.

Clic sur le bouton Démo pour lancer la macro "Traitement".

A +

Cordialement.
 

Pièces jointes

  • Copie de exemple Rulesback.xlsm
    22.6 KB · Affichages: 32

rulesback

XLDnaute Nouveau
Re : Incrémentation automatique avec écart fixe entre des cellules

Papou-net Merci infiniment, ça marche parfaitement.

J'ai une autre question (excusez moi de vous déranger):

Si j'ai une formule en cellule A1 i.e: =si(type(A1)=1;A1;"")
Avec le même principe de tout à l'heure, comment je peux insérer cette formule dans le code que vous m'avez envoyé.

Merci
 

rulesback

XLDnaute Nouveau
Re : Incrémentation automatique avec écart fixe entre des cellules

Papou-net Merci infiniment, ça marche parfaitement.

J'ai une autre question (excusez moi de vous déranger):

Si j'ai une formule en cellule A1 i.e: =si(type(A1)=1;A1;"")
Avec le même principe de tout à l'heure, comment je peux insérer cette formule dans le code que vous m'avez envoyé.

Merci
 

Papou-net

XLDnaute Barbatruc
Re : Incrémentation automatique avec écart fixe entre des cellules

RE:

Pas sûr d'avoir compris, mais essaie ceci:

Code:
Sub Traitement()
Dim LgC As Integer, LgS As Integer

LgC = 21
With Feuil1
  For LgS = 2 To .Range("A2").CurrentRegion.Rows.Count Step 2
    .Cells(LgC, 1).Formula = .Cells(LgS, 1).Formula
    LgC = LgC + 5
  Next
End With
End Sub

A +

Cordialement.
 

rulesback

XLDnaute Nouveau
Re : Incrémentation automatique avec écart fixe entre des cellules

Merci, ça marche également. :)

Dernier point: j'aimerais faire la même chose (les deux codes que m'avez donné) mais le deuxième tableau devra être en deuxième page (consulter le fichier joint svp)

NB: Veuillez prendre en considération le changement de nom de feuils car je donne des noms différents à chaque feuil du classeur.

Cordialement
 

Pièces jointes

  • exemple 2.xlsx
    12.9 KB · Affichages: 27
  • exemple 2.xlsx
    12.9 KB · Affichages: 31
Dernière modification par un modérateur:

Papou-net

XLDnaute Barbatruc
Re : Incrémentation automatique avec écart fixe entre des cellules

RE

Dernier point: j'aimerais faire la même chose (les deux codes que m'avez donné) mais le deuxième tableau devra être en deuxième page (consulter le fichier joint svp)

Il suffit de mentionner le nom de la feuille de destination:

Code:
Sub Traitement()
Dim LgC As Integer, LgS As Integer

LgC = 3
With Feuil1
  For LgS = 2 To .Range("A2").CurrentRegion.Rows.Count Step 2
    Feuil2.Cells(LgC, 1) = .Cells(LgS, 1)
    LgC = LgC + 5
  Next
End With
End Sub

NB: Veuillez prendre en considération le changement de nom de feuils car je donne des noms différents à chaque feuil du classeur.

Par l'utilisation du CodeName des feuilles (Feuil1, Feuil2, Feuil3,...) on s'affranchit de la mise-à-jour du code si l'on change les noms de feuilles par la suite. Le CodeName est le nom qui figure avant les noms d'onglets entre parenthèses; il est fixé par Excel lors de la création des feuilles et ne varie plus même si on renomme l'onglet.

Cordialement
 

Discussions similaires