Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Base de données

2 réponses
Avatar
Fred C.
Salut,
Je cherche sous excel a bloquer la formule d=92une cellule du type;=20
=3DINDEX(bdd_process;nb;COLONNE(INDIRECT(B17)))
Cette formule pointe vers une base de donn=E9es excel. Cette base se=20
remplis automatiquement par une autre application.
Avec les formules comme ci-dessus j'extrais les donn=E9es dans une feuill=
e=20
de validation (plus sexy que de travailler avec les nombreux=20
enregistrements de la base).

Mais je d=E9sire modifier les enregistrements lorsque les valeurs sont=20
erron=E9es par exemple en saisissant directement dans la cellule.
La nouvelle valeur sera ins=E9r=E9e directement dans la base de donn=E9es=
et=20
la formule doit =EAtre restitu=E9e.

En gros,je r=E9sume:

Une cellule qui pointe vers une cellule et qui peut modifier cette cible.=


Merci pour votre aide...
Enfin, j'esp=E8re =EAtre clair dans mes explications....

2 réponses

Avatar
Daniel.C
Bonjour.
Mets la macro suivante dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Valeur, Col As Integer
If Target.Address <> "$D$8" Or Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Valeur = Target.Value
Target.FormulaLocal = "=INDEX(bdd_process;nb;COLONNE(INDIRECT(B17)))"
Col = Range([B17]).Column
Range("bdd_process")([nb], Col) = Valeur
Application.EnableEvents = True
End Sub

(J'ai supposé que la formule était en D8)
Cordialement.
Daniel
"Fred C." a écrit dans le message de news:
fntolv$n8m$
Salut,
Je cherche sous excel a bloquer la formule d’une cellule du type;
=INDEX(bdd_process;nb;COLONNE(INDIRECT(B17)))
Cette formule pointe vers une base de données excel. Cette base se
remplis automatiquement par une autre application.
Avec les formules comme ci-dessus j'extrais les données dans une feuille
de validation (plus sexy que de travailler avec les nombreux
enregistrements de la base).

Mais je désire modifier les enregistrements lorsque les valeurs sont
erronées par exemple en saisissant directement dans la cellule.
La nouvelle valeur sera insérée directement dans la base de données et
la formule doit être restituée.

En gros,je résume:

Une cellule qui pointe vers une cellule et qui peut modifier cette cible.

Merci pour votre aide...
Enfin, j'espère être clair dans mes explications....
Avatar
Fred C.
Merci, c'est tout a fait ce que je cherchais.
j'ai du modifier
Range("bdd_process")([nb], Col) = Valeur
car ça ne marche pas et je connaissais pas cette instruction !
Car bdd_process est le nom d'une plage dans une autre feuille...
Sheets("bdd_process").Range("bdd_process")([nb] + 1, Col).Value= Valeur

Salut


Bonjour.
Mets la macro suivante dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Valeur, Col As Integer
If Target.Address <> "$D$8" Or Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Valeur = Target.Value
Target.FormulaLocal = "=INDEX(bdd_process;nb;COLONNE(INDIRECT(B 17)))"
Col = Range([B17]).Column
Range("bdd_process")([nb], Col) = Valeur
Application.EnableEvents = True
End Sub

(J'ai supposé que la formule était en D8)
Cordialement.
Daniel
"Fred C." a écrit dans le message de news:
fntolv$n8m$
Salut,
Je cherche sous excel a bloquer la formule d’une cellule du type;
=INDEX(bdd_process;nb;COLONNE(INDIRECT(B17)))
Cette formule pointe vers une base de données excel. Cette base se
remplis automatiquement par une autre application.
Avec les formules comme ci-dessus j'extrais les données dans une feui lle
de validation (plus sexy que de travailler avec les nombreux
enregistrements de la base).

Mais je désire modifier les enregistrements lorsque les valeurs sont
erronées par exemple en saisissant directement dans la cellule.
La nouvelle valeur sera insérée directement dans la base de donné es et
la formule doit être restituée.

En gros,je résume:

Une cellule qui pointe vers une cellule et qui peut modifier cette cibl e.

Merci pour votre aide...
Enfin, j'espère être clair dans mes explications....