OVH Cloud OVH Cloud

"Change"

5 réponses
Avatar
aife1
Bonjour à tous et à toutes !!

Dans une feuille, j'ai un code, pour dès que les cellules de la colonne A
changent, les colonnes B à D se remplissent automatiquement grâce à une base
de données qui est dans le même classeur.

Mon code commence par ça :
Private Sub Worksheet_Change (ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
bla bla bla ...

Mais je voudrais modifier ce code, afin qu'il ne exécute plus dès un
changement dans la colonne A mais dans une plage nommée "Plage", et là je
coince.

Si quelqu'un pourrait m'aider, ce serait vraiment bien.

Merci d'avance pour tout.

Salutations

5 réponses

Avatar
michdenis
Bonjour Aife1,

En lieu et place de :
If Target.Column <> 1 Then Exit Sub

Ceci :

if not intersect(Target,Range("plage")) is nothing then
' Ton code

end if


Salutations!




"aife1" a écrit dans le message de news:ucGG0$
Bonjour à tous et à toutes !!

Dans une feuille, j'ai un code, pour dès que les cellules de la colonne A
changent, les colonnes B à D se remplissent automatiquement grâce à une base
de données qui est dans le même classeur.

Mon code commence par ça :
Private Sub Worksheet_Change (ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
bla bla bla ...

Mais je voudrais modifier ce code, afin qu'il ne exécute plus dès un
changement dans la colonne A mais dans une plage nommée "Plage", et là je
coince.

Si quelqu'un pourrait m'aider, ce serait vraiment bien.

Merci d'avance pour tout.

Salutations
Avatar
aife1
Bonjour MichDenis !!

Merci pour ton aide. J'ai remplacé le code, mais maintenant ça me met une
erreur dans VBA sur un code d'une autre feuille, qui marchait très bien
jusque là. Je comprend pas ce qui se passe ..

Merci et à bientôt,

Amicalement

"michdenis" a écrit dans le message de
news:
Bonjour Aife1,

En lieu et place de :
If Target.Column <> 1 Then Exit Sub

Ceci :

if not intersect(Target,Range("plage")) is nothing then
' Ton code

end if


Salutations!




"aife1" a écrit dans le message de
news:ucGG0$

Bonjour à tous et à toutes !!

Dans une feuille, j'ai un code, pour dès que les cellules de la colonne A
changent, les colonnes B à D se remplissent automatiquement grâce à une
base

de données qui est dans le même classeur.

Mon code commence par ça :
Private Sub Worksheet_Change (ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
bla bla bla ...

Mais je voudrais modifier ce code, afin qu'il ne exécute plus dès un
changement dans la colonne A mais dans une plage nommée "Plage", et là je
coince.

Si quelqu'un pourrait m'aider, ce serait vraiment bien.

Merci d'avance pour tout.

Salutations





Avatar
aife1
Pour info, l'erreur est "Erreur d'exécution '40036' : Erreur définie par
l'application ou par l'objet".

Avant que je change mon code, il n'y avait aucune erreur et les codes
fonctionnaient bien.

Si quelqu'un a une idée, elle est la bienvenue ...

Merci d'avance,

A plus


"michdenis" a écrit dans le message de
news:
Bonjour Aife1,

En lieu et place de :
If Target.Column <> 1 Then Exit Sub

Ceci :

if not intersect(Target,Range("plage")) is nothing then
' Ton code

end if


Salutations!




"aife1" a écrit dans le message de
news:ucGG0$

Bonjour à tous et à toutes !!

Dans une feuille, j'ai un code, pour dès que les cellules de la colonne A
changent, les colonnes B à D se remplissent automatiquement grâce à une
base

de données qui est dans le même classeur.

Mon code commence par ça :
Private Sub Worksheet_Change (ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
bla bla bla ...

Mais je voudrais modifier ce code, afin qu'il ne exécute plus dès un
changement dans la colonne A mais dans une plage nommée "Plage", et là je
coince.

Si quelqu'un pourrait m'aider, ce serait vraiment bien.

Merci d'avance pour tout.

Salutations





Avatar
michdenis
Bonjour Aife 1,

Tu devrais définir davantage ton besoin et tes questions. Je n'ai pas aucune façon de savoir ce qui se passe réellement dans
ton application et pourquoi cette modification affecte d'autres macros.


Salutations!


"aife1" a écrit dans le message de news:%
Bonjour MichDenis !!

Merci pour ton aide. J'ai remplacé le code, mais maintenant ça me met une
erreur dans VBA sur un code d'une autre feuille, qui marchait très bien
jusque là. Je comprend pas ce qui se passe ..

Merci et à bientôt,

Amicalement

"michdenis" a écrit dans le message de
news:
Bonjour Aife1,

En lieu et place de :
If Target.Column <> 1 Then Exit Sub

Ceci :

if not intersect(Target,Range("plage")) is nothing then
' Ton code

end if


Salutations!




"aife1" a écrit dans le message de
news:ucGG0$

Bonjour à tous et à toutes !!

Dans une feuille, j'ai un code, pour dès que les cellules de la colonne A
changent, les colonnes B à D se remplissent automatiquement grâce à une
base

de données qui est dans le même classeur.

Mon code commence par ça :
Private Sub Worksheet_Change (ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
bla bla bla ...

Mais je voudrais modifier ce code, afin qu'il ne exécute plus dès un
changement dans la colonne A mais dans une plage nommée "Plage", et là je
coince.

Si quelqu'un pourrait m'aider, ce serait vraiment bien.

Merci d'avance pour tout.

Salutations





Avatar
aife1
Re Bonjour !

Voila comment se compose mon classeur (en gros, pas détaillé) :

feuille BdD1 :
colonne A : nom de film
colonne B : résumé
colonne D : acteurs

feuille BdD2 :
colonne A : genre de film
colonnes B à x : noms de films
Code :
Private Sub Worksheet_BeforeDoubleClick(ByVal zz As Range, Cancel As
Boolean)
If zz.Column > 2 Or zz.Row = 2 Then Exit Sub
Sheets("Résultats").Range("A1") = zz.Range("A1").Value
Sheets("Résultats").Range("A2") = zz.Range("A2").Value
....
Cancel = True
End Sub

feuille Résultats :
colonne A : nom de film
colonne B : résumé
colonne D : acteurs
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Plage")) Is Nothing Then
With Worksheets("BdD1").Range("LesDonnées")
Dim Atrouver
Set Atrouver = .Find(Target)
If Not Atrouver Is Nothing Then
For i = 1 To 7
Target.Offset(0, i).Value = Atrouver.Offset(0, i).Value
Next i

End If
End With
Set Atrouver = Nothing
End Sub

Explication :
Je double clique sur une cellule de la colonne A de DdD2, les noms de films
selon le genre se copient en ColA de Résultats.
Les colonnes B et D de Résultats se remplissent automatiquement grace à
BdD1.

Ma plage nommée "Plage" est une plage de la colonne A de Résultat.

Si il manque des infos, dit-moi le.

Merci de te pencher sur mon problème.

Amicalement

"michdenis" a écrit dans le message de
news:
Bonjour Aife 1,

Tu devrais définir davantage ton besoin et tes questions. Je n'ai pas
aucune façon de savoir ce qui se passe réellement dans

ton application et pourquoi cette modification affecte d'autres macros.


Salutations!


"aife1" a écrit dans le message de
news:%

Bonjour MichDenis !!

Merci pour ton aide. J'ai remplacé le code, mais maintenant ça me met une
erreur dans VBA sur un code d'une autre feuille, qui marchait très bien
jusque là. Je comprend pas ce qui se passe ..

Merci et à bientôt,

Amicalement

"michdenis" a écrit dans le message de
news:
Bonjour Aife1,

En lieu et place de :
If Target.Column <> 1 Then Exit Sub

Ceci :

if not intersect(Target,Range("plage")) is nothing then
' Ton code

end if


Salutations!




"aife1" a écrit dans le message de
news:ucGG0$

Bonjour à tous et à toutes !!

Dans une feuille, j'ai un code, pour dès que les cellules de la colonne
A


changent, les colonnes B à D se remplissent automatiquement grâce à une
base

de données qui est dans le même classeur.

Mon code commence par ça :
Private Sub Worksheet_Change (ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
bla bla bla ...

Mais je voudrais modifier ce code, afin qu'il ne exécute plus dès un
changement dans la colonne A mais dans une plage nommée "Plage", et là
je


coince.

Si quelqu'un pourrait m'aider, ce serait vraiment bien.

Merci d'avance pour tout.

Salutations