Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à
chaque validation l'image irai en cellule F6 puis en F7 puis en
F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Juste un oubli...
Daniel
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OQ4cDmgbKHA.1028@TK2MSFTNGP06.phx.gbl...
Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
Daniel
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OgqFMAgbKHA.2184@TK2MSFTNGP04.phx.gbl...
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à
chaque validation l'image irai en cellule F6 puis en F7 puis en
F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OPt8P8dbKHA.544@TK2MSFTNGP05.phx.gbl...
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uqOGqZdbKHA.1596@TK2MSFTNGP06.phx.gbl...
http://cjoint.com/?lzoZh1jB23
Daniel
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uKsAlNdbKHA.2572@TK2MSFTNGP05.phx.gbl...
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
Daniel
Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: eem6yZcbKHA.5656@TK2MSFTNGP04.phx.gbl...
Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
Daniel
Au temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
Daniel
Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à
chaque validation l'image irai en cellule F6 puis en F7 puis en
F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à
chaque validation l'image irai en cellule F6 puis en F7 puis en
F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Juste un oubli...
Daniel
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OQ4cDmgbKHA.1028@TK2MSFTNGP06.phx.gbl...
Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
Daniel
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OgqFMAgbKHA.2184@TK2MSFTNGP04.phx.gbl...
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à
chaque validation l'image irai en cellule F6 puis en F7 puis en
F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OPt8P8dbKHA.544@TK2MSFTNGP05.phx.gbl...
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uqOGqZdbKHA.1596@TK2MSFTNGP06.phx.gbl...
http://cjoint.com/?lzoZh1jB23
Daniel
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uKsAlNdbKHA.2572@TK2MSFTNGP05.phx.gbl...
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
Daniel
Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: eem6yZcbKHA.5656@TK2MSFTNGP04.phx.gbl...
Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
Daniel
Au temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
Daniel
Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à
chaque validation l'image irai en cellule F6 puis en F7 puis en
F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Bonjour JB
Pourquoi "Photo4" ?
"nomimage"n'a rien à voir ?
--
Cordialement
Guy
"JB" a écrit dans le message de news:
http://boisgontierjacques.free.fr/pages_site/donneesvalidation.htm#choixImage
JB
On 25 nov, 10:52, "Guy72" wrote:
> Bonjour JB
> Ce ne sont pas des images .jpg.
> En fait elles seront sur la même feuille
> --
> Cordialement
> Guy
>
> "JB" a écrit dans le message de news:
>
> Bonjour,
>
> http://boisgontierjacques.free.fr/pages_site/lesimages.htm#FonctionAf...
>
> JBhttp://boisgontierjacques.free.fr
>
> On 25 nov, 09:27, "Guy72" wrote:
>
>
>
> > Bonjour,
> > Est-il possible d'après un texte par exemple: "Pluie" en cellule D6 et
> > de
> > faire apparaître une image en cellule F6 ?
> > L'image se trouve dans le même
> > dossier.http://www.cijoint.fr/cjlink.php?file=cj200911/cijFdbPym5.xls
> > --
> > Cordialement
> > Guy- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -
.
Bonjour JB
Pourquoi "Photo4" ?
"nomimage"n'a rien à voir ?
--
Cordialement
Guy
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
75589c3b-3509-4fe6-b0a0-baf7f7c5ef54@k17g2000yqh.googlegroups.com...
http://boisgontierjacques.free.fr/pages_site/donneesvalidation.htm#choixImage
JB
On 25 nov, 10:52, "Guy72" <Guy_Excel_2...@bonjour.fr> wrote:
> Bonjour JB
> Ce ne sont pas des images .jpg.
> En fait elles seront sur la même feuille
> --
> Cordialement
> Guy
>
> "JB" <boisgont...@hotmail.com> a écrit dans le message de news:
> fc918865-8e4b-4b39-a607-51a51e818...@j4g2000yqe.googlegroups.com...
> Bonjour,
>
> http://boisgontierjacques.free.fr/pages_site/lesimages.htm#FonctionAf...
>
> JBhttp://boisgontierjacques.free.fr
>
> On 25 nov, 09:27, "Guy72" <Guy_Excel_2...@bonjour.fr> wrote:
>
>
>
> > Bonjour,
> > Est-il possible d'après un texte par exemple: "Pluie" en cellule D6 et
> > de
> > faire apparaître une image en cellule F6 ?
> > L'image se trouve dans le même
> > dossier.http://www.cijoint.fr/cjlink.php?file=cj200911/cijFdbPym5.xls
> > --
> > Cordialement
> > Guy- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -
.
Bonjour JB
Pourquoi "Photo4" ?
"nomimage"n'a rien à voir ?
--
Cordialement
Guy
"JB" a écrit dans le message de news:
http://boisgontierjacques.free.fr/pages_site/donneesvalidation.htm#choixImage
JB
On 25 nov, 10:52, "Guy72" wrote:
> Bonjour JB
> Ce ne sont pas des images .jpg.
> En fait elles seront sur la même feuille
> --
> Cordialement
> Guy
>
> "JB" a écrit dans le message de news:
>
> Bonjour,
>
> http://boisgontierjacques.free.fr/pages_site/lesimages.htm#FonctionAf...
>
> JBhttp://boisgontierjacques.free.fr
>
> On 25 nov, 09:27, "Guy72" wrote:
>
>
>
> > Bonjour,
> > Est-il possible d'après un texte par exemple: "Pluie" en cellule D6 et
> > de
> > faire apparaître une image en cellule F6 ?
> > L'image se trouve dans le même
> > dossier.http://www.cijoint.fr/cjlink.php?file=cj200911/cijFdbPym5.xls
> > --
> > Cordialement
> > Guy- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -
.
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à chaque
validation l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31
jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à chaque
validation l'image irai en cellule F6 puis en F7 puis en F8jusqu'à 31
jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix
de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
u05lpxgbKHA.1648@TK2MSFTNGP05.phx.gbl...
Juste un oubli...
Daniel
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OQ4cDmgbKHA.1028@TK2MSFTNGP06.phx.gbl...
Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
Daniel
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OgqFMAgbKHA.2184@TK2MSFTNGP04.phx.gbl...
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à chaque
validation l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31
jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à chaque
validation l'image irai en cellule F6 puis en F7 puis en F8jusqu'à 31
jours (F37).
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OPt8P8dbKHA.544@TK2MSFTNGP05.phx.gbl...
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uqOGqZdbKHA.1596@TK2MSFTNGP06.phx.gbl...
http://cjoint.com/?lzoZh1jB23
Daniel
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uKsAlNdbKHA.2572@TK2MSFTNGP05.phx.gbl...
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
Daniel
Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix
de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: eem6yZcbKHA.5656@TK2MSFTNGP04.phx.gbl...
Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
Daniel
Au temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
Daniel
Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à chaque
validation l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31
jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à chaque
validation l'image irai en cellule F6 puis en F7 puis en F8jusqu'à 31
jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix
de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Exact :
remplace par :
image = Application.Index([N1:N30], Application.Match(Target, [N1:N30],
0), 1)
ou plus que 30 si tu as plus d'images. Le top serait une plage dynamique
(utilisant ÞCALER) ou un tableau XL2007. Indique-moi ta version. Si j'ai
le temps, je te poste ça aujourd'hui.
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis
en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et
de cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Exact :
remplace par :
image = Application.Index([N1:N30], Application.Match(Target, [N1:N30],
0), 1)
ou plus que 30 si tu as plus d'images. Le top serait une plage dynamique
(utilisant ÞCALER) ou un tableau XL2007. Indique-moi ta version. Si j'ai
le temps, je te poste ça aujourd'hui.
Daniel
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
u05lpxgbKHA.1648@TK2MSFTNGP05.phx.gbl...
Juste un oubli...
Daniel
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OQ4cDmgbKHA.1028@TK2MSFTNGP06.phx.gbl...
Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
Daniel
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OgqFMAgbKHA.2184@TK2MSFTNGP04.phx.gbl...
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis
en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OPt8P8dbKHA.544@TK2MSFTNGP05.phx.gbl...
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uqOGqZdbKHA.1596@TK2MSFTNGP06.phx.gbl...
http://cjoint.com/?lzoZh1jB23
Daniel
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: uKsAlNdbKHA.2572@TK2MSFTNGP05.phx.gbl...
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
Daniel
Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: eem6yZcbKHA.5656@TK2MSFTNGP04.phx.gbl...
Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
Daniel
Au temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
Daniel
Bonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et
de cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Exact :
remplace par :
image = Application.Index([N1:N30], Application.Match(Target, [N1:N30],
0), 1)
ou plus que 30 si tu as plus d'images. Le top serait une plage dynamique
(utilisant ÞCALER) ou un tableau XL2007. Indique-moi ta version. Si j'ai
le temps, je te poste ça aujourd'hui.
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis
en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et
de cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à chaque
validation l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31
jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à chaque
validation l'image irai en cellule F6 puis en F7 puis en F8jusqu'à 31
jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix
de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
u05lpxgbKHA.1648@TK2MSFTNGP05.phx.gbl...
Juste un oubli...
Daniel
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OQ4cDmgbKHA.1028@TK2MSFTNGP06.phx.gbl...
Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
Daniel
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OgqFMAgbKHA.2184@TK2MSFTNGP04.phx.gbl...
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à chaque
validation l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31
jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à chaque
validation l'image irai en cellule F6 puis en F7 puis en F8jusqu'à 31
jours (F37).
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OPt8P8dbKHA.544@TK2MSFTNGP05.phx.gbl...
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uqOGqZdbKHA.1596@TK2MSFTNGP06.phx.gbl...
http://cjoint.com/?lzoZh1jB23
Daniel
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uKsAlNdbKHA.2572@TK2MSFTNGP05.phx.gbl...
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
Daniel
Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix
de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: eem6yZcbKHA.5656@TK2MSFTNGP04.phx.gbl...
Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
Daniel
Au temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
Daniel
Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à chaque
validation l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31
jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à chaque
validation l'image irai en cellule F6 puis en F7 puis en F8jusqu'à 31
jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix
de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis
en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et
de cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
Daniel
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
u05lpxgbKHA.1648@TK2MSFTNGP05.phx.gbl...
Juste un oubli...
Daniel
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OQ4cDmgbKHA.1028@TK2MSFTNGP06.phx.gbl...
Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
Daniel
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OgqFMAgbKHA.2184@TK2MSFTNGP04.phx.gbl...
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis
en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OPt8P8dbKHA.544@TK2MSFTNGP05.phx.gbl...
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uqOGqZdbKHA.1596@TK2MSFTNGP06.phx.gbl...
http://cjoint.com/?lzoZh1jB23
Daniel
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: uKsAlNdbKHA.2572@TK2MSFTNGP05.phx.gbl...
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
Daniel
Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: eem6yZcbKHA.5656@TK2MSFTNGP04.phx.gbl...
Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
Daniel
Au temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
Daniel
Bonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et
de cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis
en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et
de cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
D'accord.
Je suppose...... que le nom "début" peut être supprimé ?
Je suppose aussi........que le module "test" peut être supprimé également ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis en
F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
D'accord.
Je suppose...... que le nom "début" peut être supprimé ?
Je suppose aussi........que le module "test" peut être supprimé également ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
%233yLoK1cKHA.6096@TK2MSFTNGP02.phx.gbl...
Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
Daniel
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
u05lpxgbKHA.1648@TK2MSFTNGP05.phx.gbl...
Juste un oubli...
Daniel
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OQ4cDmgbKHA.1028@TK2MSFTNGP06.phx.gbl...
Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
Daniel
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OgqFMAgbKHA.2184@TK2MSFTNGP04.phx.gbl...
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis en
F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OPt8P8dbKHA.544@TK2MSFTNGP05.phx.gbl...
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uqOGqZdbKHA.1596@TK2MSFTNGP06.phx.gbl...
http://cjoint.com/?lzoZh1jB23
Daniel
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uKsAlNdbKHA.2572@TK2MSFTNGP05.phx.gbl...
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
Daniel
Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: eem6yZcbKHA.5656@TK2MSFTNGP04.phx.gbl...
Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
Daniel
Au temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
Daniel
Bonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
D'accord.
Je suppose...... que le nom "début" peut être supprimé ?
Je suppose aussi........que le module "test" peut être supprimé également ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis en
F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les cellules
en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Absolument.
DanielD'accord.
Je suppose...... que le nom "début" peut être supprimé ?
Je suppose aussi........que le module "test" peut être supprimé également
?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas
de besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en
E8 jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à
dire qu'à chaque validation l'image irai en cellule F6 puis en F7
puis en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les
cellules en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant
le choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le
message de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que
noms différents
"ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Absolument.
Daniel
D'accord.
Je suppose...... que le nom "début" peut être supprimé ?
Je suppose aussi........que le module "test" peut être supprimé également
?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
%233yLoK1cKHA.6096@TK2MSFTNGP02.phx.gbl...
Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
Daniel
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
u05lpxgbKHA.1648@TK2MSFTNGP05.phx.gbl...
Juste un oubli...
Daniel
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OQ4cDmgbKHA.1028@TK2MSFTNGP06.phx.gbl...
Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
Daniel
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OgqFMAgbKHA.2184@TK2MSFTNGP04.phx.gbl...
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas
de besoin).
Daniel
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en
E8 jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à
dire qu'à chaque validation l'image irai en cellule F6 puis en F7
puis en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OPt8P8dbKHA.544@TK2MSFTNGP05.phx.gbl...
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: uqOGqZdbKHA.1596@TK2MSFTNGP06.phx.gbl...
http://cjoint.com/?lzoZh1jB23
Daniel
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: uKsAlNdbKHA.2572@TK2MSFTNGP05.phx.gbl...
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
Daniel
Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les
cellules en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant
le choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le
message de news: eem6yZcbKHA.5656@TK2MSFTNGP04.phx.gbl...
Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
Daniel
Au temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
Daniel
Bonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que
noms différents
"ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Absolument.
DanielD'accord.
Je suppose...... que le nom "début" peut être supprimé ?
Je suppose aussi........que le module "test" peut être supprimé également
?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas
de besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en
E8 jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à
dire qu'à chaque validation l'image irai en cellule F6 puis en F7
puis en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les
cellules en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant
le choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le
message de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que
noms différents
"ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Bonjour Daniel,
Quand je mets ma liste à l'horizontale ,ça ne fonctionne plus.
Que faut-il modifier ?
Merci de ton aide;
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%Absolument.
DanielD'accord.
Je suppose...... que le nom "début" peut être supprimé ?
Je suppose aussi........que le module "test" peut être supprimé également
?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis
en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les
cellules en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le
message de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et
de cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Bonjour Daniel,
Quand je mets ma liste à l'horizontale ,ça ne fonctionne plus.
Que faut-il modifier ?
Merci de ton aide;
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
%23HhUNU1cKHA.5568@TK2MSFTNGP02.phx.gbl...
Absolument.
Daniel
D'accord.
Je suppose...... que le nom "début" peut être supprimé ?
Je suppose aussi........que le module "test" peut être supprimé également
?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
%233yLoK1cKHA.6096@TK2MSFTNGP02.phx.gbl...
Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
Daniel
Pas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
u05lpxgbKHA.1648@TK2MSFTNGP05.phx.gbl...
Juste un oubli...
Daniel
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
OQ4cDmgbKHA.1028@TK2MSFTNGP06.phx.gbl...
Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
Daniel
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OgqFMAgbKHA.2184@TK2MSFTNGP04.phx.gbl...
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis
en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: OPt8P8dbKHA.544@TK2MSFTNGP05.phx.gbl...
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news: uqOGqZdbKHA.1596@TK2MSFTNGP06.phx.gbl...
http://cjoint.com/?lzoZh1jB23
Daniel
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message
de news: uKsAlNdbKHA.2572@TK2MSFTNGP05.phx.gbl...
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
Daniel
Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les
cellules en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le
message de news: eem6yZcbKHA.5656@TK2MSFTNGP04.phx.gbl...
Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
Daniel
Au temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
Daniel
Bonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et
de cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide
Bonjour Daniel,
Quand je mets ma liste à l'horizontale ,ça ne fonctionne plus.
Que faut-il modifier ?
Merci de ton aide;
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%Absolument.
DanielD'accord.
Je suppose...... que le nom "début" peut être supprimé ?
Je suppose aussi........que le module "test" peut être supprimé également
?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%Voila, avecune plage dynamique :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijnlvd3gw.xls
DanielPas possible, si je la supprime, ça ne fonctionne plus.
Il me semble qu'elle est aussi dans ton code "image =
Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0), 1)"
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Juste un oubli...
DanielOk c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:Essaie ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub
DanielC'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement
des image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
DanielEn colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour
chaque partie les mettre en E1 pour le matin (c'est à dire qu'à
chaque validation l'image irai en cellule E6 puis en E7 puis en E8
jusqu'à 31 jours (E37), et en F1 pour l'après-midi (c'est à dire
qu'à chaque validation l'image irai en cellule F6 puis en F7 puis
en F8jusqu'à 31 jours (F37).
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
DanielOui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même
feuille de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news:http://cjoint.com/?lzoZh1jB23
DanielNon, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy
"Daniel.C" a écrit dans le message
de news:T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes
affaires !
DanielOk ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le
choix de D6).Ok
Mais si je souhaiterais avoir la même chose dans les
cellules en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le
choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy
"Daniel.C" a écrit dans le
message de news:Ou plutôt cette syntaxe :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub
DanielAu temps ppour moi.
Remplace la macro par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub
(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée
sur la feuille. Fais donc attention si tu en ajoutes.
DanielBonjour,
D'accord ça fonctionne avec des noms différent dans le
code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et
de cellules différentes "If Target.Address = "$D$6" Then"
et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8
Image F8, etc......
Merci de votre aide