Modifier un string en adresse de cellule

Benzema

XLDnaute Junior
Bonjour,

si j'ai un string qui contient des adresse de cellules, comment les passer dans une variable de type Range ?

en gros comment trouver un moyen de realiser ceci:
Code:
Dim c As Range, a As String
a= $C$30 :$C$33
[COLOR="Red"] c.Address= a  (ceci ne fonctionne pas!)[/COLOR]


Merci d'avance,
Clem
 

Benzema

XLDnaute Junior
Re : Modifier un string en adresse de cellule

Merci de ta reponse, en fait a est une variable globale donc c'est

Code:
Public a as String
Dim c As Range
a = "$C$30:$C$33"
Set c = Range(a)


Mais ca ne marche pas malheureusement le compilateur me dit

"Method 'Range' of object'_Global' failed"

Merci de ton aide
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Modifier un string en adresse de cellule

Bonjour Benzema, Job, bonjour le forum,

Attention une variable déclarée publique doit être placée en tout début de module, avant la procédure et pas à l'intérieur de celle-ci ! J'ai testté chez en rajoutant la ligne en rouge et ça marche :
Code:
Public a As String
Sub Macro1()
Dim c As Range
a = "$C$30:$C$33"
Set c = Range(a)
[COLOR=red]c.Select[/COLOR]
End Sub
 

tbft

XLDnaute Accro
Re : Modifier un string en adresse de cellule

Bonjour tout le mode

@Robert: quelle est la feuille de C? est la feuille indiquer par activesheet ou une autre?
Pourrait tu m'éclairer, car j'ai du mal avec la portée des range et des cells?

D'avance merci
 

Gorfael

XLDnaute Barbatruc
Re : Modifier un string en adresse de cellule

Salut tbft et le forum
Range("A2") = [A2] =Cells(2,1) = Cells(2,"A")
Je ne crois pas qu'il y ait d'autre écriture en direct (mais avec Excel...)

Par défaut, quand tu écris Range("A2"), tu écris en réalité :
ActiveWorkBook.ActiveSheet.range("A2").Value
en français : la valeur de la cellule A2 (en absolu : $A$2) de la feuille active du classeur actif

Et si tu exposais ton problème ? On serait mieux à même de t'aider.
A+
 

Pierrot93

XLDnaute Barbatruc
Re : Modifier un string en adresse de cellule

Bonjour à tous,

pour connaitre la feuille de "c", enfin si j'ai bien compris :
Code:
Sub test()
Dim c As Range, a As String
a = "$C$30:$C$33"
Set c = Range(a)
MsgBox c.Parent.Name
End Sub
bonne journée
@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Modifier un string en adresse de cellule

Bonjour le fil, bonjour le forum,

Pffff je comprends plus rien là ! J'attendais une réponse de Benzema et c'est une question de tbft... L'onglet de c est, par défaut, la feuille active ou sinon l'onglet que tu aurais spécifier comme l'expliquent Pierrot et Gorfael.

Petit complément d'information au cas ton problème correspondrait à un autre type de situation :
Si par exemple tu lances une macro à partir d'un CommandButton1 placé dans l'onglet Feuil1. Pour sélectionner une plage dans un autre onglet il te faudra bien sûr sélectionner cet autre onglet, mais aussi toujours spécifier le nom de l'onglet pour y sélectionner une plage :
Code:
Sheets("Feuil2").Select
Sheets("Feuil2").Range("A1").Select 'ou ActiveSheet.Range("A1").Select
ou :
Code:
With Sheets("Feuil2")
     .Select
     .Range("A1").Select
End With
Car, à partir d'un bouton placé dans l'onglet Feuil1, le code suivant va planter :
Code:
Sheets("Feuil2").Select
Range("A1").Select
et te renvoyer :
Erreur d'exécution '1004'
La méthode Select de la classe Range a échoué
 

Benzema

XLDnaute Junior
Re : Modifier un string en adresse de cellule

Bonjour a tous !

Merci de vos reponses !
Je vais essayer d'eclaicir mon probleme pour tout le monde, n'hesitez pas a me reprendre si je ne suis pas clair!

En gros j'ai 2 fonctions et une variable globale de type string.

Dans la premiere fonction j'enregistre dans la variable globale des adresses de cellules contenues dans la feuill1.

Dans la deuxieme fonction, j'aimerai recuperer les adresses des cellules enregistrees dans la feuill1 pour realiser des operations sur les memes adresses de cellule que la feuill1 mais pas la meme feuilles

Par exemple j'ai A1-->A3 de la feuille 1, je recupere ces adresses via la variable globale, et je peux faire des operations sur A1-->A3 de la feuill2


Voici mon avancement la ligne rouge est refusee par le compilateur car je rentre 1 string en guise d'adresse.

Merci a tous pour votre aide !


Code:
Public a As String
Sub Macro1()
a = "$C$30:$C$33"
End Sub


Sub Macro2()
Dim c As Range
[COLOR="Red"]Set c = Range(a)[/COLOR]
End Sub
 

Gorfael

XLDnaute Barbatruc
Re : Modifier un string en adresse de cellule

Salut Benzema et le forum
J'ai testé chez moi, et ça fonctionne sans problème => tu fais donc une manip incompatible, que je corrige automatiquement, puisque je la sais fausse. Mais laquelle ? C'est la question à 1000€ (merci de me les envoyer :p)

Bon, en étant sérieux :
- Les 2 macros sont sur le même module ?

Exécutes-les en pas-à-pas et regardes la valeur de ta variable a à chaque ligne.
A+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Modifier un string en adresse de cellule

Bonjour le fil, bonjour le forum

J'ai testé même sur deux modules différents et chez moi pas d'erreur mais il ne se passe rien ! Pour voir quelquechose j'ai rajouté la ligne c.Select et ça fonctionne parfaitement !?...
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Modifier un string en adresse de cellule

Bonjoru à tous


Code:
[COLOR=#000080]quelquechose j'ai rajouter la ligne [B]c.Select[/B] et ça fonctionne parfaitement !?...[/COLOR]

Ah, je le savais que le select, des fois, cela peut-être utile :p.
 

Benzema

XLDnaute Junior
Re : Modifier un string en adresse de cellule

Bonjours a tous ,

J'ai reussi a resoudre mon probleme, ca venait des type de selection de feuille

Code:
Sub rajoutSerie()
Dim c As ChartObject, s As Series, b As Range





       
   
Set c = Sheet2.ChartObjects(1)
With c.Chart
    Set s = .SeriesCollection.NewSeries
    With s
        .Values = [COLOR="Red"]Sheet4.Range(v)[/COLOR]
        .Name = Sheet2.Range("A1").Text
    End With
End With
End Sub


J'avais naivement oublier de lui preciser Sheet4.Range
Merci a tous pour votre aide ! Et une speciale a Robert qui m'a enfin permis de piger les finesses de excel pour manipuler ces p***** de feuilles !

Bon week end a tous, ici a Munich c'est du 15 degres !
 

Discussions similaires

Réponses
2
Affichages
303
Réponses
3
Affichages
139

Statistiques des forums

Discussions
312 496
Messages
2 088 983
Membres
103 997
dernier inscrit
SET2A