index

Le
Andrea Parker
Bonsoir à tous

dans un classeur avec 26 feuilles
j'ai besoin de faire une récap sur la 27ème
afin de ne pas faire la multitude des liens à la main,
je sais que c'est possible avec index, ligne,
mais alors là c'est une formule qui reste vraiment obscure
pour ma petite tête
malgré des exemples je n'arrive pas à tout comprendre !!
c'est pourquoi je demande de l'aide
si une âme charitable courageuse et serviable
pouvait m'aider je suis prête à envoyer le fichier
j'en serais trrrrrrrrès reconnaissante
cordialement
merci d'avance
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Benead
Le #1288840
Salut Andrea,

Voici une macro qui te créée un répertoire te tous les onglets contenus dans un classeur avec un retour (cellule A1 ou B1 ou C1 en fonction de son
remplissage). A adapter en fonction de tes besoins :

'************** A placer dans un module standard *******
Sub CreationLiens()
Dim Feuille As Worksheets, n As Integer, L As Integer, _
ExisteFeuille As Boolean, wCell As Range, Réponse As Long
On Error Resume Next
ExisteFeuille = Worksheets("Répertoire").Name
If Err.Number = 9 Then
Err.Clear
Réponse = MsgBox("Il faut une feuille nommée ""Répertoire"" !" & _
vbCrLf & "Voulez-vous la créer ?", vbYesNo, "Création des liens Hypertextes")
If Réponse = vbNo Then Exit Sub
ActiveWorkbook.Worksheets.Add before:=Sheets(1)
ActiveSheet.Name = "Répertoire"
End If
On Error GoTo 0
With Sheets("Répertoire")
L = 1
.Cells.Clear
For n = 1 To Worksheets.Count
If Worksheets(n).Name <> "Répertoire" Then
.Activate

.Hyperlinks.Add Anchor:=.Cells(L, 1), Address:="", _
SubAddress:="'" & Worksheets(n).Name & "'!A1"
.Cells(L, 1).Value = Worksheets(n).Name
.Cells(L, 1).Select
If Worksheets(n).[A1].Hyperlinks.Count = 1 Or IsEmpty(Worksheets(n).[A1]) Then
Set wCell = Worksheets(n).[A1]
ElseIf Worksheets(n).[B1].Hyperlinks.Count = 1 Or IsEmpty(Worksheets(n).[B1]) Then
Set wCell = Worksheets(n).[B1]
ElseIf Worksheets(n).[C1].Hyperlinks.Count = 1 Or IsEmpty(Worksheets(n).[C1]) Then
Set wCell = Worksheets(n).[C1]
End If
If Not wCell Is Nothing Then
Worksheets(n).Hyperlinks.Add Anchor:=wCell, Address:="", SubAddress:="'" & _
Worksheets("Répertoire").Name & "'!" & .Cells(L, 1).Address(0, 0)
wCell.Value = "Retour au Répertoire"
End If
L = L + 1
Set wCell = Nothing
End If
Next
End With
End Sub
'********************************************

--
A+
Benead
Bretagne
Xl97
-------- ;-)
Andrea Parker a écrit:
Bonsoir à tous

dans un classeur avec 26 feuilles
j'ai besoin de faire une récap sur la 27ème
afin de ne pas faire la multitude des liens à la main,
je sais que c'est possible avec index, ligne,
mais alors là c'est une formule qui reste vraiment obscure
pour ma petite tête
malgré des exemples je n'arrive pas à tout comprendre !!
c'est pourquoi je demande de l'aide
si une âme charitable courageuse et serviable
pouvait m'aider je suis prête à envoyer le fichier
j'en serais trrrrrrrrès reconnaissante
cordialement
merci d'avance



Andrea Parker
Le #1288839
soit j'ai mal expliqué soit tu n'as pas tout saisi
je travaille dans un seul classeur
et c'est des liens entre cellules que je souhaite

mais je garde ta macro sous le coude
merci
Andrea Parker
Le #1288838
en fait plus simple
j'ai une ligne dans ma feuille récap qui va chercher le contenu
de cellules de la feuille 1

je veux simplement recopier cette ligne vers le bas en changeant
le nom de la feuille sachant que toutes mes feuilles sont nommées
par exemple 1 & 2, 3 & 4 jusqu'à 51 & 52

Ce qui donne comme formule sur la récap par exemple dans la cellule D4
='1 & 2'!$G$23+'1 & 2'!$N$23



Andrea Parker a écrit:
Bonsoir à tous

dans un classeur avec 26 feuilles
j'ai besoin de faire une récap sur la 27ème
afin de ne pas faire la multitude des liens à la main,
je sais que c'est possible avec index, ligne,
mais alors là c'est une formule qui reste vraiment obscure
pour ma petite tête
malgré des exemples je n'arrive pas à tout comprendre !!
c'est pourquoi je demande de l'aide
si une âme charitable courageuse et serviable
pouvait m'aider je suis prête à envoyer le fichier
j'en serais trrrrrrrrès reconnaissante
cordialement
merci d'avance



FxM
Le #1288836
Bonsoir Andrea,

Andrea Parker wrote:
en fait plus simple
j'ai une ligne dans ma feuille récap qui va chercher le contenu
de cellules de la feuille 1

je veux simplement recopier cette ligne vers le bas en changeant
le nom de la feuille sachant que toutes mes feuilles sont nommées
par exemple 1 & 2, 3 & 4 jusqu'à 51 & 52

Ce qui donne comme formule sur la récap par exemple dans la cellule D4
='1 & 2'!$G$23+'1 & 2'!$N$23


Deux solutions :

** par fonction perso si tu as toujours la même structure de noms de
feuille (2 nombres séparés par un espace, le caractère & et un autre
espace) :

Alt-F11 | Insertion | module, copies-y ce qui suit :

Public Function increment(cel)
Application.Volatile True
Dim nb As Double, ok As Boolean, ou As String
Dim d As String, k As String, vie As String, nou As String
Dim a As Integer, e As Integer
Dim b As Integer

On Error Resume Next
nb = 0: ok = False: ou = cel.Address
Do Until ok = True
With Sheets(cel.Worksheet.Name)
k = .Range(ou).Formula
If k = "" Then Exit Function
d = Replace(Replace(k, "=increment(", ""), ")", "")
If d = "" Then Exit Function
nb = nb + 1: ou = d
If Left(d, 1) = "=" Then
ok = True
End If
End With
Loop

a = InStr(1, ou, "'")
e = InStr(1, ou, "&")
b = CInt(Replace(Mid(k, a + 1, e - a - 1), " ", ""))
vie = "'" & b & " & " & b + 1 & "'!"
nou = "'" & b + (2 * nb + 0) & " & " & b + (2 * nb + 1) & "'!"
k = Replace(k, vie, nou)
increment = Evaluate(k)
End Function


Usage :
en D4, tu as : ='1 & 2'!$G$23+'1 & 2'!$N$23
en D5, entre : =increment(D4)
Le résultat est équivalent à ='3 & 4'!$G$23+'3 & 4'!$N$23

Recopie vers le bas, tu as :
en D6, =increment(D5)
Le résultat est équivalent à ='5 & 6'!$G$23+'5 & 6'!$N$23
etc, etc


** sous forme de formule :

Avec le texte '1 & 2'! en A1 :
=indirect(A1 & $G$23) + indirect(A1 & $N$23)

Ca paraît plus simple mais il te faut entrer le nom des feuilles
manuellement :o)

@+
FxM





Andrea Parker a écrit:

Bonsoir à tous

dans un classeur avec 26 feuilles
j'ai besoin de faire une récap sur la 27ème
afin de ne pas faire la multitude des liens à la main,
je sais que c'est possible avec index, ligne,
mais alors là c'est une formule qui reste vraiment obscure
pour ma petite tête
malgré des exemples je n'arrive pas à tout comprendre !!
c'est pourquoi je demande de l'aide
si une âme charitable courageuse et serviable
pouvait m'aider je suis prête à envoyer le fichier
j'en serais trrrrrrrrès reconnaissante
cordialement
merci d'avance




Publicité
Poster une réponse
Anonyme