ecrire automatiquement dans une cellule en fonction d'une autre

clichy

XLDnaute Junior
bonsoir à tous,

je vous remercie pour cet espace d'apprentissage et de partage de connaissance...

voici mon problème:
j'ai besoin de mettre une formule dans une cellule si et seulement si une autre cellule est remplie d'un texte.
je m'explique..
il s'agit d'un fichier de reporting et les lignes se remplissent au fur et à mesure du temps, il me faut donc un systeme pour remplir mes lignes que quand les cellules sont remplies
je sais le faire avec des formules en remplissant d'avance le tableau mais cela n'est pas idéal car je ne sais pas combien il y aura de lignes en tout
je sais qu'avec une macro qui s'active lorsque la cellule est pleine c'est possible mais je ne maitrise pas encore...


avec l'exemple ci joint, cela sera plus clair

merci d'avance a vous
 

Pièces jointes

  • projet_veille2.xlsx
    10.7 KB · Affichages: 64

excfl

XLDnaute Barbatruc
Re : ecrire automatiquement dans une cellule en fonction d'une autre

Bonsoir,

Formule en A2 : tirer vers le bas.

En D2 : =SI(A2="";"";SI(ESTERREUR(INDIRECT(CONCATENER("'";pilote!$E$2;"'";;"!";"E4")));0;INDIRECT(CONCATENER("'";pilote!$E$2;"'";;"!";"E4"))))

excfl
 
Dernière édition:

clichy

XLDnaute Junior
Re : ecrire automatiquement dans une cellule en fonction d'une autre

re bonjour,

sur un autre fil, j'ai trouvé ce code qui s'approche de ce que je veux faire.
cependant, je cherche a faire cette action en auto et non par un bouton

je vous remercie


Code:
Sub Archivage()
    With Feuil3
        .Rows("8:8").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
        .Range("B8").FormulaLocal = "='" & ActiveSheet.Name & "'!F2"
        .Range("C8").FormulaLocal = "='" & ActiveSheet.Name & "'!H7"
        .Range("D8").FormulaLocal = "='" & ActiveSheet.Name & "'!H8"
        .Range("E8").FormulaLocal = "='" & ActiveSheet.Name & "'!H9"
        .Range("F8").FormulaLocal = "='" & ActiveSheet.Name & "'!N11"
        .Range("G8").FormulaLocal = "='" & ActiveSheet.Name & "'!H28"
        .Range("H8").FormulaLocal = "='" & ActiveSheet.Name & "'!H27"
        .Range("I8").FormulaLocal = "='" & ActiveSheet.Name & "'!H29"
        .Range("J8").FormulaLocal = "='" & ActiveSheet.Name & "'!J28"
        Range("A1").Select
        .Activate
    End With

code extrait de ce fil https://www.excel-downloads.com/thr...-partir-a-partir-de-plusieurs-onglets.207424/
 

clichy

XLDnaute Junior
Re : ecrire automatiquement dans une cellule en fonction d'une autre

re-
en attendant mieux, j'ai adapté ce code sur un bouton obligatoire de mon onglet créé. ce bouton sert à imprimer l'onglet.
cependant, a chaque clic pour impression, le code génére une nouvelle ligne > normal, c'est ce qu'on lui demande.

comment brider le code pour qu'il ne génère qu'une seule fois et qu'après il se mette en veille?

je vous remercie
 

clichy

XLDnaute Junior
Re : ecrire automatiquement dans une cellule en fonction d'une autre

re-

bon alors...
en fait c'était une bonne idée mais ca ne va pas.
en venant rajouter une ligne, ca me décale les coordonnées de mon tableaux et les nouvelles données ne sont pas prises en compte car en dehors des références du tableaux.
du coup, je continue à chercher et j'ai trouvé!!!...


voici le code
Code:
dim nom_onglet as string
nom_onglet = range ("d3")
Sheets("bilan").Select
Sheets("bilan").Range("a3").Select
If Sheets("bilan").Range("a3").Value <> "" Then Sheets("bilan").Range("A3").End(xlDown).Select
ActiveCell.Offset(1, 0).Select
    ActiveCell.Offset.Value = "='" & nom_onglet & "'!M1" 'nom
    ActiveCell.Offset(0, 1).Value = "='" & nom_onglet & "'!p1" 'date
    ActiveCell.Offset(0, 2).Value = "='" & nom_onglet & "'!O1" 'nom onglet
    ActiveCell.Offset(0, 3).Value = "='" & nom_onglet & "'!P4" 'total
    ActiveCell.Offset(0, 4).Value = "='" & nom_onglet & "'!Q4" 'envirronement du mag
    ActiveCell.Offset(0, 5).Value = "='" & nom_onglet & "'!R4" 'extérieur du mag
    ActiveCell.Offset(0, 6).Value = "='" & nom_onglet & "'!S4" 'intérieur du mag
    ActiveCell.Offset(0, 7).Value = "='" & nom_onglet & "'!T4" 'accueil
    ActiveCell.Offset(0, 8).Value = "='" & nom_onglet & "'!U4" 'acte de vente
    ActiveCell.Offset(0, 9).Value = "='" & nom_onglet & "'!V4" 'monture & verres
    ActiveCell.Offset(0, 10).Value = "='" & nom_onglet & "'!W4" 'devis
    ActiveCell.Offset(0, 11).Value = "='" & nom_onglet & "'!X4" 'objection
    ActiveCell.Offset(0, 12).Value = "='" & nom_onglet & "'!Y4" '2ème paire
    ActiveCell.Offset(0, 13).Value = "='" & nom_onglet & "'!Z4" 'prise de congés
    ActiveCell.Offset(0, 14).Value = "='" & nom_onglet & "'!C4" 'point fort 1
    ActiveCell.Offset(0, 15).Value = "='" & nom_onglet & "'!C7" 'point fort 2

mes données s'incrémentent à la fin de mon tableau et tt va bien

je vous remercie de votre aide
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 477
Membres
103 553
dernier inscrit
jhnm