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

Pb de réf.circulaires suite à une récolte de données

6 réponses
Avatar
pat
Bonjour,
Sous Excel 2003 : j'ai un pb de conservation de données qui génère (tel
que je l'ai traité) des réf.circulaires, je comprends pourquoi mais je
ne trouve pas d'autre solution plus élégante, c'est pourquoi je
sollicite votre aide :
Des valeurs se mettent à jour automatiquement sous leur titre figé dans
une zone de la feuille disons zone A.
Je veux conserver toutes les variations dans d'autres cellules fixes
également où je reproduit toute les listes qui vont se générer (leur nb
est connu et le titre aussi) disons dans une zone B.
Le pb vient du fait que dans ma formule j'écris que si le test est faux
je conserve ce qui est dans la cellule en disant que c'est le résultat
s'y trouvant déjà que je conserve (exemple : en G6) j'écris
=SI($A$4=$G$5;$A5;$G6) et on voit G6 à la fin

L'exemple ci-joint parlera mieux qu'un long discours.
http://cjoint.com/?0BtlFA8CSib

Merci pour votre aide

6 réponses

Avatar
DanielCo
Bonjour,
Supprime les formules et mets cette macro dans le module de le feuille
:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$4" Then Exit Sub
Application.EnableEvents = False
col = Application.Match(Target.Value, [5:5], 0)
If IsNumeric(col) Then
Cells(6, col).Resize(10).Value = [A5:A14].Value
End If
Application.EnableEvents = True
End Sub

Cordialement.
Daniel


Bonjour,
Sous Excel 2003 : j'ai un pb de conservation de données qui génère (tel que
je l'ai traité) des réf.circulaires, je comprends pourquoi mais je ne trouve
pas d'autre solution plus élégante, c'est pourquoi je sollicite votre aide :
Des valeurs se mettent à jour automatiquement sous leur titre figé dans une
zone de la feuille disons zone A.
Je veux conserver toutes les variations dans d'autres cellules fixes
également où je reproduit toute les listes qui vont se générer (leur nb est
connu et le titre aussi) disons dans une zone B.
Le pb vient du fait que dans ma formule j'écris que si le test est faux je
conserve ce qui est dans la cellule en disant que c'est le résultat s'y
trouvant déjà que je conserve (exemple : en G6) j'écris
=SI($A$4=$G$5;$A5;$G6) et on voit G6 à la fin

L'exemple ci-joint parlera mieux qu'un long discours.
http://cjoint.com/?0BtlFA8CSib

Merci pour votre aide
Avatar
h2so4
bonjour,

1) a quoi sert la zone A, n'est-il pas possible d'introduire les données en zone B ?

2) si tu veux malgré tout utiliser le mode de fonctionnement que tu as pr évu (on introduit en zone la référence de la colonne de données (Ty pe) que l'on veut mettre à jour et on introduit les nouvelles valeurs en zone A, il faut, à mon avis obligatoirement passer par une macro. mais je pose des questions sur la valeur ajoutée d'un tel mode de fonctionnement (cfr ma première question).

la macro devrait détecter qu'il y a quelque chose qui change en zone A et faire la mise à jour en zone B en fonction du type.
Avatar
pat
Merci,
je pensais éviter les macros pour ne pas interférer avec les macros déjà
présentes dans la feuille qui génère les mises à jours de la zone A.
Dans la réalité la zone B est sur une autre feuille qui sert de synthèse
et que je détache en final.

Je vais quand même essayer la macro pour approfondir la solution
Avatar
pat
Merci ça fonctionne super bien ce code !


Le 19/02/2012 12:21, DanielCo a écrit :
Bonjour,
Supprime les formules et mets cette macro dans le module de le feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$4" Then Exit Sub
Application.EnableEvents = False
col = Application.Match(Target.Value, [5:5], 0)
If IsNumeric(col) Then
Cells(6, col).Resize(10).Value = [A5:A14].Value
End If
Application.EnableEvents = True
End Sub

Cordialement.
Daniel

Avatar
pat
seul bémol c'est que dans la réalité la valeur de la cible change par
calcul et cela ne déclenche pas le précédent module
Avatar
DanielCo
Alors :
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
col = Application.Match([A4].Value, [5:5], 0)
If IsNumeric(col) Then
Cells(6, col).Resize(10).Value = [A5:A14].Value
End If
Application.EnableEvents = True
End Sub
Daniel


seul bémol c'est que dans la réalité la valeur de la cible change par calcul
et cela ne déclenche pas le précédent module