Microsoft 365 Offset

Roro1313

XLDnaute Nouveau
Bonsoir,

J’ai une feuille de calcul SHEET, avec des données dans la colonne A:A en feuille 1

J’aimerai les déplacer en feuille 2 avec une condition particulière :

-En A1 feuille 2 j’aimerai avoir : A1 en feuille 1

-En A18 (+17) feuille 2 : A2 en feuille 1

-En A35 (+17) feuille 2 : A3 en feuille 1

-En A52 (+17) feuille 2 : A4 en feuille 1

Etc…

(le but serait de pouvoir étirer la formule)

J’ai pensé à une formule OFFSET, mais j’ai rien réussi à concrétiser.

Si un passionné veut bien m’aider je serai fortement reconnaissant !!!

C’est la formule qui manque à la finalité d’un projet

Merci d’avance
 

Gégé-45550

XLDnaute Accro
Bonsoir,

J’ai une feuille de calcul SHEET, avec des données dans la colonne A:A en feuille 1

J’aimerai les déplacer en feuille 2 avec une condition particulière :

-En A1 feuille 2 j’aimerai avoir : A1 en feuille 1

-En A18 (+17) feuille 2 : A2 en feuille 1

-En A35 (+17) feuille 2 : A3 en feuille 1

-En A52 (+17) feuille 2 : A4 en feuille 1

Etc…

(le but serait de pouvoir étirer la formule)

J’ai pensé à une formule OFFSET, mais j’ai rien réussi à concrétiser.

Si un passionné veut bien m’aider je serai fortement reconnaissant !!!

C’est la formule qui manque à la finalité d’un projet

Merci d’avance
Bonsoir,
En cellule A1 de la Feuil2 :
VB:
=INDIRECT("Feuil1!A" & LIGNE(A1)+(LIGNE(A1)-1)*16)
à tirer vers le bas
Cordialement
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Si vous propagez la formule cherchée en A1 sur les lignes suivantes, que voulez vous qu'elle vaille si elle n'est pas sur une ligne de numéro 17 * N + 1 ?
Pour un texte vide c'est, en Feuil2:A1 :
Code:
=SI(MOD(LIGNE();17)=1;DECALER(Feuil1!$A$1;(LIGNE()-1)/17;0);"")
 

job75

XLDnaute Barbatruc
Bonjour à tous,

Voyez cette macro :
VB:
Sub Offset()
Dim F1 As Worksheet, F2 As Worksheet, tablo1, ub1&, ub2&, tablo2, nf$, i&, j&
Set F1 = Sheets("Feuil1")
Set F2 = Sheets("Feuil2")
tablo1 = F1.Range("A1", F1.Cells(F1.Rows.Count, 1).End(xlUp))
ub1 = UBound(tablo1)
ub2 = Application.Min(1 + 17 * (ub1 - 1), F2.Rows.Count)
tablo2 = F2.Columns(1).Resize(ub2).Formula
nf = F1.Name
For i = 1 To UBound(tablo1)
    j = 1 + 17 * (i - 1)
    If j <= ub2 Then tablo2(j, 1) = "='" & nf & "'!A" & i
Next
F2.Columns(1).Resize(ub2) = tablo2
End Sub
Elle crée des formules de liaison en Feuil2.

A+
 

Discussions similaires

Statistiques des forums

Discussions
315 092
Messages
2 116 119
Membres
112 666
dernier inscrit
Coco0505