Dim et Range

Signaler
Messages postés
70
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
6 mars 2010
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour à tous !
Je débute et sollicite donc votre indulgence.
Cette question concerne VBA excel.
Je souhaite intéger quelque chose comme ceci dans ma macro :
-----------------------------------------
Dim = x
x = Range ("A1")
   Range("B3:B6").Select
   Selection.Copy
   Range("D3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
-------------------------------------------
Sauf qu'au lieu de copier les données des cellules B3 à B6 dans D3,
je voudrais que ma variable remplace le 3 de D3, chiffre qui est dans A1

Je suppose que c'est enfantin, mais je bloque.
Merci à vous !

-Dominike -

11 réponses

Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Salut

Tu n'a qu'a essayer:  Cells(N°col , N°ligne)  au lieu de Range

@+
Messages postés
70
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
6 mars 2010

Merci pour cette rapide réponse,
mais quelle serait la formule exacte dans ce cas :
Cells(D,x). Select ?

-Dominike -
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
A verifier, mais ça doit marcher!

Bonne fouille!
Messages postés
70
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
6 mars 2010

Sympa de t'occuper de moi Jimy, mais au risque de t'embêter, ça ne fonctionne pas ! Aurais-tu une autre idée ?

-Dominike -
Messages postés
70
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
6 mars 2010

Y aurait-il qqu'un qui n'est pas en train de dîner SVP ?

-Dominike -
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Bon, c'est te macher le travail, mais voilà.

Testé ok.

Sub Macro1()

Dim x
    x = Range("C7").Value
    Cells(x, 4).Select       ' Ici cells( ligne, colonne)...4 =D
   
End Sub

@+
Messages postés
70
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
6 mars 2010

Je crois bien comprendre que je suis nunuche, et pourtant je fais des efforts, mais ma macro coïnce ici en rouge :
-------------------------------------------------------------------------------
Sub macro1()
'
Dim x
x = Range("I2").Value ' --- Numéro du dossier à créer --//


' ------------------------------------------------//
    Sheets("Table").Select
    Range("B3:B32").Select
    Selection.Copy
    Range("D3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B35:B54").Select
    Application.CutCopyMode = False
    Selection.Copy
    Cells(4, x).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
-------------------------------------------------
Merci de voir où est le pb et merci pour le temps consacré à un débutant !

-Dominike -
Messages postés
70
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
6 mars 2010

Je crois que j'ai compris !
Merci encore pour ta patience.

-Dominike -
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
J'ai retesté la partie en bleu et ça marche bien, vois dans les limites d'excel, pour le code ça parait ok!

Sub macro1()
'
Dim x
x = Range("I2").Value ' --- Numéro du dossier à créer --// ' ------------------------------------------------//
    Sheets("Table").Select
    Range("B3:B32").Select
    Selection.Copy
    Range("D3").Select
    Selection.PasteSpecial Paste: =xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B35:B54").Select
    Application.CutCopyMode = False
    Selection.Copy
    Cells(4, x).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
-------------------------------------------------
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
N'oublie pas le " Réponse acceptée"
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Si tu connais la colonne, donc la lettre, tu peux facilement utiliser Range("D" & x)
Si tu ne connais pas la colonne, il te faut alors passer par Cells(Ligne, Colonne)

   Dim x
   x = Range ("A1")
   Range("B3:B6").Copy
   Range("D" & x).PasteSpecial Paste:=xlPasteValues

MPi²