Tirer une formule en décalage de X ligne [Résolu/Fermé]

Signaler
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
-
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
-
Bonjour à tous,

j'aimerai tirer une formule de X lignes sur une colonne
qui fait référence à des donner d'une colonne dans autre tableau
ci joint un fichier excel pour mieux comprendre en formas excel 2003

http://dl.free.fr/getfile.pl?file=/oCGcH47d
Merci pour votre aide

17 réponses

Messages postés
17139
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 juillet 2020
4 129
Salut,
soit en VBA si tu as quelques notions ou manuellement

exemple tu as en B5 A, en B6 B en B7 C etc

pour insérer exemple 5 cellules entre B5 et B6, tu sélectionnes B6 et 5 cellules au dessous soit de B6 à BB10 et Insertion/Cellules/coches Décaler les cellules vers le bas et OK
et tu refais la même chose pour chaque valeur
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
Merci pour la réponse
Mais c'est vraiment ce que je veut, ca je sais faire

je renvoi la valeur dans un tableau juste en tirant la cellule, le problem c'est que dans le tableau d'orgine, les valeur ce suivant dans la colonne , mais dans le tableau du renvoi les valeurs doivent etre tirer vers le bas avec des interligne X

Merci de consulter la feuille excel que j'ai joint
Merci
Messages postés
17139
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 juillet 2020
4 129
Re,

Alors pour insérer des lignes à partir de la colonne B, insère un module dans le visual basic
(Touche ALT et touche F11/Insertion/Module) et colle ce code qui insérera des cellules et non des lignes. Associe-le à un bouton. Si c'est ce que tu cherches on écriera le code différemment

Sub Macro2()
For i = 100 To 2 Step -1
If Range("B" & i).Value <> "" Then
Range(Range("B" & i), ("B" & i + 3)).Insert Shift:=xlDown
End If
Next i
End Sub
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
NON
je pense que je suis loin de résoudre ce problème,

j'ai penser à l'option "=décalé" mais ca ne marche pas
Pour mieux comprendre dans le premier tableau j'ai
en
A1 : 5
A2 : 6
A3 : 9
A4 : T

dans un autre tableau je veux avec une formule que je peu tirer ou macro,
obtenir ça :
ex : si je veux décaler que de 5 cellule à chaque fois vers le bas
B1 : avoir la valeur de A1 (5)
B5 : avoir la valeur de A2 (6)
B10 : avoir la valeur de A3 (9)
B15 : avoir la valeur de A4 (T)
ainsi de suite
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 356
Bonsoir
si ce n'est que pour reporter les valeurs d'un tableau avec un espacement de 5
en B1 = A1 on ne peut pas faire autrement
en B5 à tirer vers le bas sur la hauteur du champ:
=SI(ESTERREUR(INDIRECT("A3&LIGNE()/5+1));"";INDIRECT("A"&LIGNE()/5+1)
vous reportera les valeurs de la colonne A en B avec un "pas" de 5 lignes
à condition bien sur de bien commencer sur B5 !

crdlmnt

Ps peut être plus simplement:
en B5:
=INDIRECT("A"&ligne()/5+1)
et saisir en même temps les cellules B5 à B9 pour tirer l'ensemble
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Messages postés
17139
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 juillet 2020
4 129
Re,

Le deuxième tableau se trouve t il sur la même feuille
dans ce deuxième tableau faut il insérer uniquement des cellules ou des lignes

le code ci dessous te permet de transférer des données de la feuil1 cellules A1 à A65536
sur la feuil2 à partir de la cellule B1

tes données sont fausses, entre B1 et B5 l'intervalle est de 3 alors que les autres sont de 4 lignes pour un intervalle de 4 la deuxième valeur doit être en B6 puis B11 et B16

Sub Macro3()
Range(Range("A65536").End(xlUp), Range("A1")).Copy
Sheets("Feuil2").Select
Range("B1").Select
ActiveSheet.Paste
For i = 100 To 2 Step -1
If Range("B" & i).Value <> "" Then
Range(Range("B" & i), ("B" & i + 3)).Insert Shift:=xlDown
End If
Next i
End Sub
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
bonjour
merci à vous,
pour la macro de Mike un peut dur a mettre en pratique
par contre travailler un peut plus la solution de vaucluse, je pense que ça peut faire l'affaire,
sur la même feuille j'arrive pas a copier le cellule voulu, car quand je met dans D20 (par exemple) =SI(ESTERREUR(INDIRECT("A3&LIGNE()/5+1));"";INDIRECT("A"&LIGNE()/5+1) pour renvoyer la valeur qui ce trouve dans la cellule K1, ça marche pas
au faite je sais pas à quoi sert le A3 et "A" dans ta formule, si tu peut faire une lecture de la formule ça serais bien merci

Aussi quand on va chercher une valeur sur autre feuille ça marche pas,
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 356
Bonjour
le fichier ci joint plutôt qu'une explication.
pour fonctionner d'une feuille à l'autre il faut inclure le nom de la feuille + l'apostrophe entre les guillemets dans le code indirect, soit au lieu de, par exemple:
= INDIRECT("A"&LIGNE()/6)
écrire:
=INDIRECT("Feuil1!A"&LIGNE()/6)
Feuil1 étant bien sur à remplacer par le nom de votre feuille.
Pour le reste voir fichier
revenez si besoin d'explications complémentaires
Crdlmnt

Ps1 je signale toutefois que dans ma proposition, le A3 était une faute de frappe, expliquant sans doute votre incompréhension.
il s'agit en fait de "A" mais j'ai laissé trainer le doigt sur shift en tapant le second guillemet... avec mes excuses.
Ps2: la proposition du fichier joint se passe maintenant de la première partie de la formule (SI(ESTERREUR...)



http://www.cijoint.fr/cjlink.php?file=cj201006/cij0Z5EoW1.xls
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
bonjour,

merci pour votre aide, c'est exactement ce que je chercher,
mon problème est résolu
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
Bonjour,

j'ai encore un petit soucis pour afficher le mois suite a des dates hebdomadaire,

si je met = mois il me donne le mois de chaque date hors ce que je veut afficher une seul fois le mois qui correspond par exemple a toute les date de septembre mais en décalage à chaque fois juste en bas des dates

pour mieux comprendre mon Problème voici un tableau type en excel 2007
Merci pour votre

http://www.cijoint.fr/cjlink.php?file=cj201006/cijDmP3Eae.xlsx
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 356
Re
1° on suppose que le pas de votre affichage jour est de 6 en fonction de la formule en E10?.. en conséquence, j'ai un peu de difficulté à comprendre ce que vous voulez dire avec:
"par exemple tous les dimanches" ?
Quant à l'affichage automatique du mois:
la formule mois affiche un N° de mois et pas un nom
vous pouvez entrer un nom en D11(SEPTEMBRE en l'occurrence) mais s'il y a une formule en E11, le nom de s'affichera pas complètement, (pour cela il faudrait que les cellules qui couvrent le nom soient vides);
Vous pouvez tester avec:
en D11 =MOIS(D10)
et en E11=SI(MOIS(D11)=MOIS(E11);"";MOIS(E11))
cette formule tirée vers la droite vous donnera le <N° du mois sur la 1° cellule correspondante à ce mois seulement.
Il y a moyen de faire afficher le mois en texte, mais il ne sera jamais visible complètement dans la cellule.
Crdlmnt
PS:
... sauf peut être en acceptant de mettre le texte en vertical et d'augmenter la hauteur de la ligne 11.
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
Merci pour ta réponse

Pour ma phrase de "par exemple tous les dimanches"
supposons que la date en A1 est un dimanche je veut que toute les dates en ligne 10 soient des dimanches, et si en A1la date correspond à un samedi toute les dates en ligne 10 soient des dates de samedi ainsi de suite si c'est un mercredi ou autre.

Par contre ça ne me dérange pas si dans la ligne 11 y a que des numéro au lieu des nom de mois,
Mais le problème vu qui y a 4 dimanche au minimum par mois je veux pas avoir apparaitre 4 fois 9 (9 de septembre)ainsi que pour le reste des mois

je sais pas si c'est possible de passer en VBA en passant par fusionner les cellule sous lignes qui corresponde au même mois afin d'afficher le mois entier et même la celle peut être cadrer
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 356
Alors essayez la formule que je vous ai précisée au message précédent Cela ne vous affiche le N° du mois que sur la première date de chaque mois, les autres cellules vont rester vides.
Par ailleurs si je n'ai pas compris l'affaire des dimanches, c'est que votre tableau est au pas de 6 et donc le 15/9 est un mercredi, le 21 un mardi ETC....
Quant à VBA c'est peut être possible, mais pas dans mes compétences.
Désolé
crdlmt
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
j'essaye la formule mais a chaque fois il me " avertissement référence circulaire"
je valide ça marche il m'affiche 0
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 356
Exact, c'est de ma faute , toutes mes excuses...!
dans la formule remplacer 11 par 10!
Vous pouvez aussi faire une mise en forme conditionnelle pour placer une bordure uniquement à gauche de la cellule contenant une valeur
crdlmnt
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
merci
ça marche à merveille super
par contre pour la mise en forme conditionnel ça ne marche pas il me met des bordure partout
je sais pas si ya des valeur caché, a moins que vous avez procédez autrement
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 356
Ci joint un type de présentation avec MFC sur la valeur de la ligne 11. La formule est:
=D$11<>"" et concerne toute la hauteur du tableau
Crdlmnt

http://www.cijoint.fr/cjlink.php?file=cj201006/cijgtutpfy.xls
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
SUPER ça marche

mais vous avez fait comment pour la bas du tableau pour que les bordure gauche descend jusqu'à en bas et avoir les pointue
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 356
Pour la mise en forme conditionnelle:
sélectionner tout le tableau D11:AZ20:
entrer dans la MFC et la formule est:
=D$11<>"" (attention au blocage $ uniquement sur la ligne, pas sur la colonne)
format: entrer uniquement la bordure gauche
ne reste plus qu'à formater le tableau à l'origine en pointillé:
toujours avec le tableau sélectionné:
clic droit / Format / Bordures, choisir les pointillés et l'icône du menu représentant les croisillons d'un tableau
Ainsi tout est en pointillé, sauf la gauche des colonnes contenant en ligne 11 une valeur différente de "" (donc le N° du mois) qui, elles ont la bordure continue
Crdlmnt.
Bonne route
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
c'est bon je vien de comprendre
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
ah
vraiment merci
je sais pas si vous êtes du vaucluse ou c'est juste un PS
Vraiment merci vaucluse
je suis pas loin de votre région
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 356
Pas de quoi Yassina...
J'étais encore du Vaucluse il y a maintenant un peu plus d'un an, mais je suis revenu dans ma région natale (l'Ain au pied du Jura).
Je suis resté 18 ans dans le Vaucluse.d'où mon pseudo que j'ai gardé . J'aurais bien choisi "Ain", mais j'ai eu peur que ça fasse un peu chti.
Bonne route au plaisir
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
Moi je suis du Gard
Vraiment merci pour votre aide,
je sais pas si je peut revenir vers vous si j'ai besoin d'aide
je métrerais statut résolu
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 356
Revenez quand vous voulez, même en message privé si vous préférez, quoique ce n'est pas mal que d'autres puissent profiter de ce type d'échange.
Crdlmnt
Messages postés
132
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
31 août 2014
2
vous avez entièrement raison, c'est un site très utile