Je souhaite avec la macro suivante mettre à jour des colonnes (en
l'occurrence les colonnes 12 et 25) en fonction de ce qui aura été saisi
dans les colonnes 5 & 7.
Je souhaite cependant intégrer un garde-fou sous forme de Msgbox pour
confirmer l'écrasement des données éventuellement présentes dans les
colonne 12 & 25, qui n'apparaîtrait que lorsque les cellules concernées
ne sont pas vides.
Ce bout de code ne fonctionne que partiellement dans la mesure où
lorsque que les cellules destinataires :
- sont vides, j'ai quand même le msgbox (1 seule fois) !
- sont remplies, j'ai deux fois le msgbox !
L'un d'entre pourrait-il m'apporter son aide dans la finalisation de
cette macro événementielle ?
Merci d'avance et joyeux Noël à tous.
Philippe
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 5
If Target.Value <> "" Or Target.Value <> "?" Then
If Cells(Target.Row, 12) <> "" Then Call msgAlerte
If msgAlerte = 6 Then Cells(Target.Row, 12) = Target.Value
End If
Case 7
If Target.Value <> "" Or Target.Value <> "?" Then
If Cells(Target.Row, 12) <> "" Then Call msgAlerte
If msgAlerte = 6 Then Cells(Target.Row, 25) = Target.Value
End If
End Select
End Sub
Function msgAlerte()
msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo)
End Function
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pounet95
Bonjour, Comme ceci peut-être ? J'ai un peu 'optimisé' afin de ne pas avoir le même code en double suivant le cas 5 ou 7. Le case else est là pour empêcher de reposer la question quand la cellule est changée Il était ausi possible de désactiver l'évènement puis de le réactiver après écriture de la cellule ( Application.EnableEvents )
Private Sub Worksheet_Change(ByVal Target As Range) Dim col As Integer Dim suite As Integer
Select Case Target.Column Case 5 col = 12 Case 7 col = 25 Case Else Exit Sub End Select
If Target.Value <> "" Or Target.Value <> "?" Then If Cells(Target.Row, col) <> "" Then suite = msgAlerte If suite = 6 Then Cells(Target.Row, col) = Target.Value Else Cells(Target.Row, col) = Target.Value End If End If End Sub
Function msgAlerte() msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo) End Function
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"Philippe Bérard" a écrit dans le message de news: dojljs$gtu$
Bonjour à Tous,
Je souhaite avec la macro suivante mettre à jour des colonnes (en l'occurrence les colonnes 12 et 25) en fonction de ce qui aura été saisi dans les colonnes 5 & 7.
Je souhaite cependant intégrer un garde-fou sous forme de Msgbox pour confirmer l'écrasement des données éventuellement présentes dans les colonne 12 & 25, qui n'apparaîtrait que lorsque les cellules concernées ne sont pas vides.
Ce bout de code ne fonctionne que partiellement dans la mesure où lorsque que les cellules destinataires : - sont vides, j'ai quand même le msgbox (1 seule fois) ! - sont remplies, j'ai deux fois le msgbox !
L'un d'entre pourrait-il m'apporter son aide dans la finalisation de cette macro événementielle ?
Merci d'avance et joyeux Noël à tous.
Philippe
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 5 If Target.Value <> "" Or Target.Value <> "?" Then If Cells(Target.Row, 12) <> "" Then Call msgAlerte If msgAlerte = 6 Then Cells(Target.Row, 12) = Target.Value
End If Case 7 If Target.Value <> "" Or Target.Value <> "?" Then If Cells(Target.Row, 12) <> "" Then Call msgAlerte If msgAlerte = 6 Then Cells(Target.Row, 25) = Target.Value End If End Select End Sub
Function msgAlerte() msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo) End Function
Bonjour,
Comme ceci peut-être ?
J'ai un peu 'optimisé' afin de ne pas avoir le même code en double
suivant le cas 5 ou 7.
Le case else est là pour empêcher de reposer la question quand la cellule
est changée
Il était ausi possible de désactiver l'évènement puis de le réactiver après
écriture de
la cellule ( Application.EnableEvents )
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Integer
Dim suite As Integer
Select Case Target.Column
Case 5
col = 12
Case 7
col = 25
Case Else
Exit Sub
End Select
If Target.Value <> "" Or Target.Value <> "?" Then
If Cells(Target.Row, col) <> "" Then
suite = msgAlerte
If suite = 6 Then Cells(Target.Row, col) = Target.Value
Else
Cells(Target.Row, col) = Target.Value
End If
End If
End Sub
Function msgAlerte()
msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo)
End Function
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Philippe Bérard" <trash.berard@neuf.fr> a écrit dans le message de news:
dojljs$gtu$1@apollon.grec.isp.9tel.net...
Bonjour à Tous,
Je souhaite avec la macro suivante mettre à jour des colonnes (en
l'occurrence les colonnes 12 et 25) en fonction de ce qui aura été saisi
dans les colonnes 5 & 7.
Je souhaite cependant intégrer un garde-fou sous forme de Msgbox pour
confirmer l'écrasement des données éventuellement présentes dans les
colonne 12 & 25, qui n'apparaîtrait que lorsque les cellules concernées ne
sont pas vides.
Ce bout de code ne fonctionne que partiellement dans la mesure où lorsque
que les cellules destinataires :
- sont vides, j'ai quand même le msgbox (1 seule fois) !
- sont remplies, j'ai deux fois le msgbox !
L'un d'entre pourrait-il m'apporter son aide dans la finalisation de cette
macro événementielle ?
Merci d'avance et joyeux Noël à tous.
Philippe
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 5
If Target.Value <> "" Or Target.Value <> "?" Then
If Cells(Target.Row, 12) <> "" Then Call msgAlerte
If msgAlerte = 6 Then Cells(Target.Row, 12) = Target.Value
End If
Case 7
If Target.Value <> "" Or Target.Value <> "?" Then
If Cells(Target.Row, 12) <> "" Then Call msgAlerte
If msgAlerte = 6 Then Cells(Target.Row, 25) = Target.Value
End If
End Select
End Sub
Function msgAlerte()
msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo)
End Function
Bonjour, Comme ceci peut-être ? J'ai un peu 'optimisé' afin de ne pas avoir le même code en double suivant le cas 5 ou 7. Le case else est là pour empêcher de reposer la question quand la cellule est changée Il était ausi possible de désactiver l'évènement puis de le réactiver après écriture de la cellule ( Application.EnableEvents )
Private Sub Worksheet_Change(ByVal Target As Range) Dim col As Integer Dim suite As Integer
Select Case Target.Column Case 5 col = 12 Case 7 col = 25 Case Else Exit Sub End Select
If Target.Value <> "" Or Target.Value <> "?" Then If Cells(Target.Row, col) <> "" Then suite = msgAlerte If suite = 6 Then Cells(Target.Row, col) = Target.Value Else Cells(Target.Row, col) = Target.Value End If End If End Sub
Function msgAlerte() msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo) End Function
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"Philippe Bérard" a écrit dans le message de news: dojljs$gtu$
Bonjour à Tous,
Je souhaite avec la macro suivante mettre à jour des colonnes (en l'occurrence les colonnes 12 et 25) en fonction de ce qui aura été saisi dans les colonnes 5 & 7.
Je souhaite cependant intégrer un garde-fou sous forme de Msgbox pour confirmer l'écrasement des données éventuellement présentes dans les colonne 12 & 25, qui n'apparaîtrait que lorsque les cellules concernées ne sont pas vides.
Ce bout de code ne fonctionne que partiellement dans la mesure où lorsque que les cellules destinataires : - sont vides, j'ai quand même le msgbox (1 seule fois) ! - sont remplies, j'ai deux fois le msgbox !
L'un d'entre pourrait-il m'apporter son aide dans la finalisation de cette macro événementielle ?
Merci d'avance et joyeux Noël à tous.
Philippe
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 5 If Target.Value <> "" Or Target.Value <> "?" Then If Cells(Target.Row, 12) <> "" Then Call msgAlerte If msgAlerte = 6 Then Cells(Target.Row, 12) = Target.Value
End If Case 7 If Target.Value <> "" Or Target.Value <> "?" Then If Cells(Target.Row, 12) <> "" Then Call msgAlerte If msgAlerte = 6 Then Cells(Target.Row, 25) = Target.Value End If End Select End Sub
Function msgAlerte() msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo) End Function
Philippe Bérard
Bonjour,
Et encore merci pour pour ton aide.
Et fêtes de fin d'année à tous.
Philippe
Bonjour, Comme ceci peut-être ? J'ai un peu 'optimisé' afin de ne pas avoir le même code en double suivant le cas 5 ou 7. Le case else est là pour empêcher de reposer la question quand la cellule est changée Il était ausi possible de désactiver l'évènement puis de le réactiver après écriture de la cellule ( Application.EnableEvents )
Private Sub Worksheet_Change(ByVal Target As Range) Dim col As Integer Dim suite As Integer
Select Case Target.Column Case 5 col = 12 Case 7 col = 25 Case Else Exit Sub End Select
If Target.Value <> "" Or Target.Value <> "?" Then If Cells(Target.Row, col) <> "" Then suite = msgAlerte If suite = 6 Then Cells(Target.Row, col) = Target.Value Else Cells(Target.Row, col) = Target.Value End If End If End Sub
Function msgAlerte() msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo) End Function
Bonjour,
Et encore merci pour pour ton aide.
Et fêtes de fin d'année à tous.
Philippe
Bonjour,
Comme ceci peut-être ?
J'ai un peu 'optimisé' afin de ne pas avoir le même code en double
suivant le cas 5 ou 7.
Le case else est là pour empêcher de reposer la question quand la
cellule est changée
Il était ausi possible de désactiver l'évènement puis de le réactiver
après écriture de
la cellule ( Application.EnableEvents )
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Integer
Dim suite As Integer
Select Case Target.Column
Case 5
col = 12
Case 7
col = 25
Case Else
Exit Sub
End Select
If Target.Value <> "" Or Target.Value <> "?" Then
If Cells(Target.Row, col) <> "" Then
suite = msgAlerte
If suite = 6 Then Cells(Target.Row, col) = Target.Value
Else
Cells(Target.Row, col) = Target.Value
End If
End If
End Sub
Function msgAlerte()
msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo)
End Function
Bonjour, Comme ceci peut-être ? J'ai un peu 'optimisé' afin de ne pas avoir le même code en double suivant le cas 5 ou 7. Le case else est là pour empêcher de reposer la question quand la cellule est changée Il était ausi possible de désactiver l'évènement puis de le réactiver après écriture de la cellule ( Application.EnableEvents )
Private Sub Worksheet_Change(ByVal Target As Range) Dim col As Integer Dim suite As Integer
Select Case Target.Column Case 5 col = 12 Case 7 col = 25 Case Else Exit Sub End Select
If Target.Value <> "" Or Target.Value <> "?" Then If Cells(Target.Row, col) <> "" Then suite = msgAlerte If suite = 6 Then Cells(Target.Row, col) = Target.Value Else Cells(Target.Row, col) = Target.Value End If End If End Sub
Function msgAlerte() msgAlerte = MsgBox("Ecrasement de la Valeur ?", vbYesNo) End Function