If resultat <> "" Then
ActiveSheet.Shapes("image11").Select
Selection.Copy
Sheets("feuille").Select
Range("A10").Select
-----je voudrai remplacer "A10" par la variable "ref"------
'Sheets("feuille").Select.ref
ActiveSheet.Paste
Selection.ShapeRange.IncrementLeft left
--------left est une variable------------
Selection.ShapeRange.IncrementTop top
---------top est une variable------------
Selection.Name = "Image 100"
Range("M9")Select
End If
la macro ne marche pas comme je voudrai ,je n arrive pas à faire marcher la macro ,quand je remplace "A10"par la variable "ref" de même pour les variable "left "et "top"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Geo
Bonjour Vous ne dites pas ce que sont les variables ref, left et top. Pour avoir la même chose, il faudrait écrire dim ref as string ref = "A10" Range(ref).Select
Bonjour
Vous ne dites pas ce que sont les variables ref, left et top.
Pour avoir la même chose, il faudrait écrire
dim ref as string
ref = "A10"
Range(ref).Select
Bonjour Vous ne dites pas ce que sont les variables ref, left et top. Pour avoir la même chose, il faudrait écrire dim ref as string ref = "A10" Range(ref).Select
MichD
Bonjour, Voici une procédure qui copie l'image de la "Feuil1" vers la "Feuil2" Si tu utilises une variable, utilise un nom de variable qui n'est pas présent dans le modèle objet VBA-Excel. À titre d'exemple, ton code utilise une variable "Left" et "Top", 2 expressions réservées au langage VBA. Il est important de déclarer toutes les variables, c'est une bonne habitude Í prendre... | "A10" par la variable "ref" : 2 façons de procéder A ) utiliser une variable de type String 'Déclaration de la variable dim Ref as String 'Renseigner la variable Ref = "A10" OU Ref = range("A10").address Pour utiliser la variable x= Range(Ref).adddress B ) utiliser un objet Range pour désigner une cellule Déclaration de la variable objet dim Rg As Range 'Renseigner la variable objet 'Lorsque l'on renseigne une variable objet, on doit utilisé "Set" Set Rg = range("A10") Plus loin dans ton code, Í chaque fois que tu fais référence Í la cellule A10, tu utilises la variable Rg comme si c'était Range("A10") x = Rg.address 'La procédure qui suit utilise 2 variables objet pour copier l'image 'de la feuille "Feuil1" vers la feuille "Feuil2". C'est un exemple de ce qui est possible de faire... '-------------------------------------------------- Sub test1() Dim Sh As Shape, Rg As Range Application.ScreenUpdating = False 'Avec la feuille o͹ est l'image With Sheets("Feuil1") 'Nom Feuille Í adapter 'Variable objet représentant la shape ("image11") Set Sh = .Shapes("Rectangle 1") 'Variable objet représentant la cellule ou cellules 'o͹ est l'objet image Set Rg = .Range(Sh.TopLeftCell.Address & ":" & _ Sh.BottomRightCell.Address) End With 'Copy de l'image Sh.Copy ''Avec la feuille o͹ est collé l'image With Worksheets("Feuil2") 'Nom Feuille Í adapter 'La cellule o͹ se retrouvera le coin supérieur 'gauche de l'image. Observe bien, l'image est de même 'dimension et et se retrouve exactement dans la position 'si tu compares avec la position de l'image de la feuille d'origine 'Tu peux choisir l'adresse de la cellule de ton choix Rg.Copy .Range("G25") .Paste .Range("G25") End With Application.CutCopyMode = False Application.ScreenUpdating = True End Sub '-------------------------------------------------- MichD
Bonjour,
Voici une procédure qui copie l'image de la "Feuil1" vers la "Feuil2"
Si tu utilises une variable, utilise un nom de variable qui n'est pas
présent dans le modèle objet VBA-Excel. À titre d'exemple, ton code
utilise une variable "Left" et "Top", 2 expressions réservées au langage
VBA.
Il est important de déclarer toutes les variables, c'est une bonne
habitude Í prendre...
| "A10" par la variable "ref" : 2 façons de procéder
A ) utiliser une variable de type String
'Déclaration de la variable
dim Ref as String
'Renseigner la variable
Ref = "A10"
OU
Ref = range("A10").address
Pour utiliser la variable
x= Range(Ref).adddress
B ) utiliser un objet Range pour désigner une cellule
Déclaration de la variable objet
dim Rg As Range
'Renseigner la variable objet
'Lorsque l'on renseigne une variable objet, on doit utilisé "Set"
Set Rg = range("A10")
Plus loin dans ton code, Í chaque fois que tu fais référence Í la
cellule A10, tu utilises la variable Rg comme si c'était Range("A10")
x = Rg.address
'La procédure qui suit utilise 2 variables objet pour copier l'image
'de la feuille "Feuil1" vers la feuille "Feuil2". C'est un exemple de ce
qui est possible de faire...
'--------------------------------------------------
Sub test1()
Dim Sh As Shape, Rg As Range
Application.ScreenUpdating = False
'Avec la feuille o͹ est l'image
With Sheets("Feuil1") 'Nom Feuille Í adapter
'Variable objet représentant la shape ("image11")
Set Sh = .Shapes("Rectangle 1")
'Variable objet représentant la cellule ou cellules
'o͹ est l'objet image
Set Rg = .Range(Sh.TopLeftCell.Address & ":" & _
Sh.BottomRightCell.Address)
End With
'Copy de l'image
Sh.Copy
''Avec la feuille o͹ est collé l'image
With Worksheets("Feuil2") 'Nom Feuille Í adapter
'La cellule o͹ se retrouvera le coin supérieur
'gauche de l'image. Observe bien, l'image est de même
'dimension et et se retrouve exactement dans la position
'si tu compares avec la position de l'image de la feuille d'origine
'Tu peux choisir l'adresse de la cellule de ton choix
Rg.Copy .Range("G25")
.Paste .Range("G25")
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------
Bonjour, Voici une procédure qui copie l'image de la "Feuil1" vers la "Feuil2" Si tu utilises une variable, utilise un nom de variable qui n'est pas présent dans le modèle objet VBA-Excel. À titre d'exemple, ton code utilise une variable "Left" et "Top", 2 expressions réservées au langage VBA. Il est important de déclarer toutes les variables, c'est une bonne habitude Í prendre... | "A10" par la variable "ref" : 2 façons de procéder A ) utiliser une variable de type String 'Déclaration de la variable dim Ref as String 'Renseigner la variable Ref = "A10" OU Ref = range("A10").address Pour utiliser la variable x= Range(Ref).adddress B ) utiliser un objet Range pour désigner une cellule Déclaration de la variable objet dim Rg As Range 'Renseigner la variable objet 'Lorsque l'on renseigne une variable objet, on doit utilisé "Set" Set Rg = range("A10") Plus loin dans ton code, Í chaque fois que tu fais référence Í la cellule A10, tu utilises la variable Rg comme si c'était Range("A10") x = Rg.address 'La procédure qui suit utilise 2 variables objet pour copier l'image 'de la feuille "Feuil1" vers la feuille "Feuil2". C'est un exemple de ce qui est possible de faire... '-------------------------------------------------- Sub test1() Dim Sh As Shape, Rg As Range Application.ScreenUpdating = False 'Avec la feuille o͹ est l'image With Sheets("Feuil1") 'Nom Feuille Í adapter 'Variable objet représentant la shape ("image11") Set Sh = .Shapes("Rectangle 1") 'Variable objet représentant la cellule ou cellules 'o͹ est l'objet image Set Rg = .Range(Sh.TopLeftCell.Address & ":" & _ Sh.BottomRightCell.Address) End With 'Copy de l'image Sh.Copy ''Avec la feuille o͹ est collé l'image With Worksheets("Feuil2") 'Nom Feuille Í adapter 'La cellule o͹ se retrouvera le coin supérieur 'gauche de l'image. Observe bien, l'image est de même 'dimension et et se retrouve exactement dans la position 'si tu compares avec la position de l'image de la feuille d'origine 'Tu peux choisir l'adresse de la cellule de ton choix Rg.Copy .Range("G25") .Paste .Range("G25") End With Application.CutCopyMode = False Application.ScreenUpdating = True End Sub '-------------------------------------------------- MichD
MichD
Une autre manière de procéder pour copier une image d'une feuille Í l'autre et l'utilisation d'une fonction dont on peut appeler aussi souvent que l'on désire. Voici un exemple Í partir du code précédent : '--------------------------------------------------------- Sub test() 'déclaration des variables Dim FeuilSource As String Dim FeuilDest As String Dim NomShape As String Dim Adr As String '***********DÉCLARATION DES VARIABLES************ FeuilSource = "Feuil1" FeuilDest = "Feuil2" NomShape = "image11" Adr = "G25" 'Adresse de la cellule feuille de destination '************************************************ 'Cette ligne de code appelle la fonction avec les 'paramètres (variables) définis. Coller_Image FeuilSource, FeuilDest, NomShape, Adr 'Tu peux utiliser cette fonction aussi souvent que 'tu veux, il n'y a qu'Í définir les paramètres(variables) End Sub '--------------------------------------------------------- Function Coller_Image(FeuilSource As String, _ FeuilDest As String, NomShape As String, _ Adr As String) Dim Sh As Shape, Rg As Range Application.ScreenUpdating = False 'Avec la feuille o͹ est l'image With Sheets(FeuilSource) 'Nom Feuille Í adapter 'Variable objet représentant la shape ("image11") Set Sh = .Shapes(NomShape) 'Variable objet représentant la cellule ou cellules 'o͹ est l'objet image Set Rg = .Range(Sh.TopLeftCell.Address & ":" & _ Sh.BottomRightCell.Address) End With 'Copy de l'image Sh.Copy ''Avec la feuille o͹ est collé l'image With Worksheets(FeuilDest) 'Nom Feuille Í adapter 'La cellule o͹ se retrouvera le coin supérieur 'gauche de l'image. Observe bien, l'image est de même 'dimension et et se retrouve exactement dans la position 'si tu compares avec la position de l'image de la feuille d'origine 'Tu peux choisir l'adresse de la cellule de ton choix Rg.Copy .Range(Adr) .Paste .Range(Adr) End With Application.CutCopyMode = False Application.ScreenUpdating = True End Function '--------------------------------------------------------- MichD
Une autre manière de procéder pour copier une image d'une feuille Í
l'autre et l'utilisation d'une fonction dont on peut appeler aussi
souvent que l'on désire. Voici un exemple Í partir du code précédent :
'---------------------------------------------------------
Sub test()
'déclaration des variables
Dim FeuilSource As String
Dim FeuilDest As String
Dim NomShape As String
Dim Adr As String
'***********DÉCLARATION DES VARIABLES************
FeuilSource = "Feuil1"
FeuilDest = "Feuil2"
NomShape = "image11"
Adr = "G25" 'Adresse de la cellule feuille de destination
'************************************************
'Cette ligne de code appelle la fonction avec les
'paramètres (variables) définis.
Coller_Image FeuilSource, FeuilDest, NomShape, Adr
'Tu peux utiliser cette fonction aussi souvent que
'tu veux, il n'y a qu'Í définir les paramètres(variables)
End Sub
'---------------------------------------------------------
Function Coller_Image(FeuilSource As String, _
FeuilDest As String, NomShape As String, _
Adr As String)
Dim Sh As Shape, Rg As Range
Application.ScreenUpdating = False
'Avec la feuille o͹ est l'image
With Sheets(FeuilSource) 'Nom Feuille Í adapter
'Variable objet représentant la shape ("image11")
Set Sh = .Shapes(NomShape)
'Variable objet représentant la cellule ou cellules
'o͹ est l'objet image
Set Rg = .Range(Sh.TopLeftCell.Address & ":" & _
Sh.BottomRightCell.Address)
End With
'Copy de l'image
Sh.Copy
''Avec la feuille o͹ est collé l'image
With Worksheets(FeuilDest) 'Nom Feuille Í adapter
'La cellule o͹ se retrouvera le coin supérieur
'gauche de l'image. Observe bien, l'image est de même
'dimension et et se retrouve exactement dans la position
'si tu compares avec la position de l'image de la feuille d'origine
'Tu peux choisir l'adresse de la cellule de ton choix
Rg.Copy .Range(Adr)
.Paste .Range(Adr)
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Function
'---------------------------------------------------------
Une autre manière de procéder pour copier une image d'une feuille Í l'autre et l'utilisation d'une fonction dont on peut appeler aussi souvent que l'on désire. Voici un exemple Í partir du code précédent : '--------------------------------------------------------- Sub test() 'déclaration des variables Dim FeuilSource As String Dim FeuilDest As String Dim NomShape As String Dim Adr As String '***********DÉCLARATION DES VARIABLES************ FeuilSource = "Feuil1" FeuilDest = "Feuil2" NomShape = "image11" Adr = "G25" 'Adresse de la cellule feuille de destination '************************************************ 'Cette ligne de code appelle la fonction avec les 'paramètres (variables) définis. Coller_Image FeuilSource, FeuilDest, NomShape, Adr 'Tu peux utiliser cette fonction aussi souvent que 'tu veux, il n'y a qu'Í définir les paramètres(variables) End Sub '--------------------------------------------------------- Function Coller_Image(FeuilSource As String, _ FeuilDest As String, NomShape As String, _ Adr As String) Dim Sh As Shape, Rg As Range Application.ScreenUpdating = False 'Avec la feuille o͹ est l'image With Sheets(FeuilSource) 'Nom Feuille Í adapter 'Variable objet représentant la shape ("image11") Set Sh = .Shapes(NomShape) 'Variable objet représentant la cellule ou cellules 'o͹ est l'objet image Set Rg = .Range(Sh.TopLeftCell.Address & ":" & _ Sh.BottomRightCell.Address) End With 'Copy de l'image Sh.Copy ''Avec la feuille o͹ est collé l'image With Worksheets(FeuilDest) 'Nom Feuille Í adapter 'La cellule o͹ se retrouvera le coin supérieur 'gauche de l'image. Observe bien, l'image est de même 'dimension et et se retrouve exactement dans la position 'si tu compares avec la position de l'image de la feuille d'origine 'Tu peux choisir l'adresse de la cellule de ton choix Rg.Copy .Range(Adr) .Paste .Range(Adr) End With Application.CutCopyMode = False Application.ScreenUpdating = True End Function '--------------------------------------------------------- MichD