[XLS] lien entre 2 feuilles & ajout de ligne
jay_rom
-
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai besoin d'aide concernant un tableau excel constitué de 2 feuilles.
Sur la première feuille, les données sont triées verticalement avec des informations sur 4 colonnes (+ ou -).
Sur la seconde feuille, les données récupérées de la première feuille sont regroupées par "bloc" de données de 4 cellules (en carré) dont les 2 cellules supérieures sont fusionnées.
Cette seconde feuille est organisée de manière à avoir 4 "bloc" sur la même ligne (sur les 2 même ligne en faite), chaque bloc étant séparé de son voisin par un colonne vierge.
Chaque ligne de bloc est séparée de la précédente par un ligne vierge.
Voici ce que je souhaite ainsi que le problème :
Je souhaite pouvoir insérer des données sur la feuille 1 (via l'ajout d'une ligne).
Lorsque j'ajoute une ligne vierge, voici la répercussion sur la feuille 2 : Sont modifiées uniquement les références aux cellules concernées alors que je voudrais que les références change de cellules plutôt que les cellules changent de références. Vous me suivez ?
prenons un exemple :
J'ai 3 (A,B,C) lignes sur ma feuille 1 qui sont référencées sur la feuille 2 par les bloc 1, 2 et 3.
--- 1A, 2B, 3C ---
Si j'insère une ligne entre la ligne A et B sur la feuille 1, les références de infos des lignes A, C & D sont référencées sur les blocs 1, 2, 3... (B étant une nouvelle ligne vierge)
--- 1A, 2C, 3D ---
Je souhaite que le bloc 2 reste vierge en attendant d'ajouter les bonnes informations. (de la nouvelle ligne B)
Comment puis-je décaler les infos d'un bloc et empêcher le décalage des infos dans le bloc ?
En espérant avoir été suffisamment clair,
Merci d'avance,
Cordialement,
Jay
J'ai besoin d'aide concernant un tableau excel constitué de 2 feuilles.
Sur la première feuille, les données sont triées verticalement avec des informations sur 4 colonnes (+ ou -).
Sur la seconde feuille, les données récupérées de la première feuille sont regroupées par "bloc" de données de 4 cellules (en carré) dont les 2 cellules supérieures sont fusionnées.
Cette seconde feuille est organisée de manière à avoir 4 "bloc" sur la même ligne (sur les 2 même ligne en faite), chaque bloc étant séparé de son voisin par un colonne vierge.
Chaque ligne de bloc est séparée de la précédente par un ligne vierge.
Voici ce que je souhaite ainsi que le problème :
Je souhaite pouvoir insérer des données sur la feuille 1 (via l'ajout d'une ligne).
Lorsque j'ajoute une ligne vierge, voici la répercussion sur la feuille 2 : Sont modifiées uniquement les références aux cellules concernées alors que je voudrais que les références change de cellules plutôt que les cellules changent de références. Vous me suivez ?
prenons un exemple :
J'ai 3 (A,B,C) lignes sur ma feuille 1 qui sont référencées sur la feuille 2 par les bloc 1, 2 et 3.
--- 1A, 2B, 3C ---
Si j'insère une ligne entre la ligne A et B sur la feuille 1, les références de infos des lignes A, C & D sont référencées sur les blocs 1, 2, 3... (B étant une nouvelle ligne vierge)
--- 1A, 2C, 3D ---
Je souhaite que le bloc 2 reste vierge en attendant d'ajouter les bonnes informations. (de la nouvelle ligne B)
Comment puis-je décaler les infos d'un bloc et empêcher le décalage des infos dans le bloc ?
En espérant avoir été suffisamment clair,
Merci d'avance,
Cordialement,
Jay
A voir également:
- [XLS] lien entre 2 feuilles & ajout de ligne
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Verificateur de lien - Guide
- Formulaire en ligne de meta - Guide
9 réponses
bonjour
Je suppose que les données de tes "blocks" sont récupérées par une formule : =Feuil1!A2 etc
Dans ce cas, il faudrait remplacer tes formules par =INDIRECT("Feuil1!A2")
et cela te permettra d'introduire d'autres lignes automatiquement et même d'en supprimer.
Je suppose que les données de tes "blocks" sont récupérées par une formule : =Feuil1!A2 etc
Dans ce cas, il faudrait remplacer tes formules par =INDIRECT("Feuil1!A2")
et cela te permettra d'introduire d'autres lignes automatiquement et même d'en supprimer.
bonjour
Si tu as pas un certain nombre de formules à faire tu peux utiliser cette petite macro :
Tu remplaces "=F" par le début de ta formule même si c'est plus long ("=Dbase" par exemple).
Si tu as pas un certain nombre de formules à faire tu peux utiliser cette petite macro :
Public Sub mod_indirect()
Dim sel As Range
Const test = "=F"
Const form = "=INDIRECT("""
For Each sel In UsedRange.Cells
If Left(sel.Formula, Len(test)) = test Then
sel.Formula = form & Mid(sel.Formula, 2) & """)"
End If
Next sel
End Sub
Tu remplaces "=F" par le début de ta formule même si c'est plus long ("=Dbase" par exemple).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Petit soucis, dans une cellule, j'ai mis =SI(ref="","",contenu) pour avoir un champ blanc si la cellule de référence est vide. Avec INDIRECT devant, j'ai une erreur de référence (cellule marquée ?ref avec coin rouge en haut à gauche de la cellule)
J'ai essayé avec INDIRECT dans les conditions du SI... je n'ai pas d'erreur mais quand j'ajoute une ligne vierge entre les ligne 2 et 3 (feuille 1), la cellule liée dans la feuille 2 (bloc 3) devient blanche (ce que je veux) mais la cellule du bloc 4 garde la valeur de la ligne 4 de la feuille 1, alors que je veux qu'elle prenne la valeur de l'ancienne ligne 3 (qui est passé ligne 4 du coup)... En gros, la valeur de la ligne 3 disparait.
Je veux que les valeurs de la feuille 2 se décalent d'un bloc à chaque fois que j'insère une ligne vierge dans la feuille 1.
Merci du soutien ;)
J'ai essayé avec INDIRECT dans les conditions du SI... je n'ai pas d'erreur mais quand j'ajoute une ligne vierge entre les ligne 2 et 3 (feuille 1), la cellule liée dans la feuille 2 (bloc 3) devient blanche (ce que je veux) mais la cellule du bloc 4 garde la valeur de la ligne 4 de la feuille 1, alors que je veux qu'elle prenne la valeur de l'ancienne ligne 3 (qui est passé ligne 4 du coup)... En gros, la valeur de la ligne 3 disparait.
Je veux que les valeurs de la feuille 2 se décalent d'un bloc à chaque fois que j'insère une ligne vierge dans la feuille 1.
Merci du soutien ;)
bonjour
La fonction INDIRECT donne toujours un résultat si la formulation de ta cellule est correct.
- si la cellule visée est documentée tu as son contenu : pas de souci.
- si la cellule visée est vide tu obtiens zéro.
2 solutions dans ce cas :
. soit tu décoches l'affichage des zéros dans menu outils / options / onglet affichage
. soit tu contrôles ta formule :
=SI(INDIRECT("Feuil1!E1")=0;"";INDIRECT("Feuil1!E1"))
Dans les 2 cas, la valeur va se décaler si insères ou supprime une ligne.
La fonction INDIRECT donne toujours un résultat si la formulation de ta cellule est correct.
- si la cellule visée est documentée tu as son contenu : pas de souci.
- si la cellule visée est vide tu obtiens zéro.
2 solutions dans ce cas :
. soit tu décoches l'affichage des zéros dans menu outils / options / onglet affichage
. soit tu contrôles ta formule :
=SI(INDIRECT("Feuil1!E1")=0;"";INDIRECT("Feuil1!E1"))
Dans les 2 cas, la valeur va se décaler si insères ou supprime une ligne.
Excuse-moi, je n'ai probablement pas été clair.
En fait, quand j'ajoute une ligne, les infos des blocs changent pour s'adapter à la nouvelle position de la source.
(si source passe de A1 à A2, le bloc point vers A2 après insertion de ligne, alors que je veux que le bloc continue de pointer vers A1)
En gros, je voudrais faire pointer un bloc vers une cellule plutôt que vers le contenu de cette cellule. (Cette formulation est peut-être plus explicite ? merci de m'aider à réfléchir d'avantage ;))
En fait, quand j'ajoute une ligne, les infos des blocs changent pour s'adapter à la nouvelle position de la source.
(si source passe de A1 à A2, le bloc point vers A2 après insertion de ligne, alors que je veux que le bloc continue de pointer vers A1)
En gros, je voudrais faire pointer un bloc vers une cellule plutôt que vers le contenu de cette cellule. (Cette formulation est peut-être plus explicite ? merci de m'aider à réfléchir d'avantage ;))
Je veux qu'un bloc pointe vers une cellule plutôt que vers son contenu. Quelles que soient les opérations ultérieures... C'est possible de faire pointer une référence sur une cellule 'absolue' ? (c'est-à-dire que si une ligne est insérée à la place de la source, le bloc pointe vers la nouvelle ligne (de mêmes coordonnées du coup))
Désolé, je précise ma pensée au fur et à mesure :/
Désolé, je précise ma pensée au fur et à mesure :/