Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/10/2011, 16h23   #1
Membre du Club
 
Avatar de Djromé
 
Inscription : juillet 2009
Messages : 161
Détails du profil
Informations personnelles :
Localisation : Luxembourg

Informations forums :
Inscription : juillet 2009
Messages : 161
Points : 58
Points : 58
Par défaut range Variables Offset

Salut les Kracks,


Je ne trouve pas le setup pour le code suivant:

Code :
 Range(lastLineComment, lastLineComment.Offset(0, 3)).Select
Comme vous l'avez compris, je souhaiterai sélectionner les cellules de ma variables aux cellules de ma variables et 3 colonnes plus loin!
__________________
Merci les kracks,

Apprendre à un imbécile, c'est comme soigner un mort
"alors avec moi, bon courage!"
(дурака учить, что мертвого лечить, c'est plus beau en Russe!)
Djromé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 16h27   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour

Une piste

Code :
1
2
3
4
5
Dim lastLineComment as Range
 
Set lastLineComment = Range("A1") ' a adapter
 
lastLineComment.Offset(0, 3).Select
Tu dis

Bon courage
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/10/2011, 16h34   #3
Membre du Club
 
Avatar de Djromé
 
Inscription : juillet 2009
Messages : 161
Détails du profil
Informations personnelles :
Localisation : Luxembourg

Informations forums :
Inscription : juillet 2009
Messages : 161
Points : 58
Points : 58
Merci Jean-Pierre,

Je ne cherche pas à sélectionner la cellule en colonne D uniquement mais la cellule de ma variable à la colonne D, du genre:

A1 étant bien lastLineComment défini comme ta proposition mais D1 devant être:
lastlinecomment.offset(0,3)

Il doit y avoir un problème de virgule ou de tréma!!!

Merci tout de même
__________________
Merci les kracks,

Apprendre à un imbécile, c'est comme soigner un mort
"alors avec moi, bon courage!"
(дурака учить, что мертвого лечить, c'est plus beau en Russe!)
Djromé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 16h49   #4
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Chez moi

Code :
1
2
3
4
5
Dim lastLineComment As Range
 
Set lastLineComment = Range("A1") ' a adapter
 
Range(lastLineComment, lastLineComment.Offset(0, 3)).Select
Selectionne bien A1 à D1

Tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/10/2011, 17h03   #5
Membre du Club
 
Avatar de Djromé
 
Inscription : juillet 2009
Messages : 161
Détails du profil
Informations personnelles :
Localisation : Luxembourg

Informations forums :
Inscription : juillet 2009
Messages : 161
Points : 58
Points : 58
Merci Jean-Pierre,

Chez moi celà fonctionne également, mais j'ai un problème qui se croise dans la définition de la variable.

En effet, elle est déclarée comme Variant suite au code suivant qui définie l'adresse de la cellule voulue:

Code :
lastLineComment = Range("A" & 27 + strAccClient + strItemRequestAuditor + 2).Address
Comme tu peux le voir, il y a d'autres variables référencées!

Aussi, je souhaiterai fusionner les cellules ".MergeCells=False" comme indiqué:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
Range(lastLineComment, lastLineComment.Offset(0, 3)).Select
With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = True
        .ReadingOrder = xlContext
        .MergeCells = True
    End With
Y'a-t-il une déclaration différente à effectuer?
__________________
Merci les kracks,

Apprendre à un imbécile, c'est comme soigner un mort
"alors avec moi, bon courage!"
(дурака учить, что мертвого лечить, c'est plus beau en Russe!)
Djromé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 17h10   #6
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Il faut déclarer 2 variables
dans
Code :
lastLineComment = Range("A" & 27 + strAccClient + strItemRequestAuditor + 2).Address
lastLineComment est un string

dans
Code :
Range(lastLineComment, lastLineComment.Offset(0, 3)).Select
C'est explicitement un range

Bon courage
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/10/2011, 17h23   #7
Membre du Club
 
Avatar de Djromé
 
Inscription : juillet 2009
Messages : 161
Détails du profil
Informations personnelles :
Localisation : Luxembourg

Informations forums :
Inscription : juillet 2009
Messages : 161
Points : 58
Points : 58
Jean-Pierre,

Pourrai-je te demander comment t'y prendrai-tu pour résoudre mon problème.

lastLineComment récupère l'ADRESSE de la dernière ligne voulue. A ce titre je la déclare donc comme STRING.

Ensuite je souhaiterai sélectionner le résultat "EX: "$A$46" avec trois colonne suivante, ce qui exige une variable RANGE.

Comment puis-je passer de mon résultat en STRING à une sélection en RANGE?

Dois-je créer une autre variable:
dim lastLineAdress as Range
lastLineAdress = lastLineComment ???

Encore merci pour ta persévérance!
__________________
Merci les kracks,

Apprendre à un imbécile, c'est comme soigner un mort
"alors avec moi, bon courage!"
(дурака учить, что мертвого лечить, c'est plus beau en Russe!)
Djromé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 17h30   #8
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
test

une piste

Code :
1
2
3
4
Dim lastLineAdress As String
lastLineAdress = Range("A1").Address ' par exemple
lastLineAdress = Replace(lastLineAdress, "$ ", " ")
Range(lastLineAdress).Select
Cela fonctionne

Je dois décrocher à demain
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/10/2011, 12h34   #9
Membre du Club
 
Avatar de Djromé
 
Inscription : juillet 2009
Messages : 161
Détails du profil
Informations personnelles :
Localisation : Luxembourg

Informations forums :
Inscription : juillet 2009
Messages : 161
Points : 58
Points : 58
Salut Jean-Pierre,

J'ai trouver la solution suivante pour sélectionner deux variables dans un range (mais sans le offset intégré, je déclare ce dernier avant sur une variable string bis )

Code :
1
2
3
4
5
6
7
8
9
Sub test()
 
Dim lastLineAddress, lastLineAddress2 As String
lastLineAddress = Range("A65000").End(xlUp).Address
lastLineAddress2 = Range("A65000").End(xlUp).Offset(0, 3).Address
 
Range(lastLineAddress, lastLineAddress2).Select
 
End Sub
Merci pour ta piste...
Je suis toujours preneur (plus simple) d'un SETUP "si existant" comme suit:
Code :
Range(lamêmeVariable, lamêmeVariable.Offset(0,3)).Select
__________________
Merci les kracks,

Apprendre à un imbécile, c'est comme soigner un mort
"alors avec moi, bon courage!"
(дурака учить, что мертвого лечить, c'est plus beau en Russe!)
Djromé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 12h43   #10
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour Djromé

Que veux-tu dire
Citation:
Je suis toujours preneur (plus simple) d'un SETUP "si existant" comme suit:
Voir le post #4 cela fonctionne

Tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/10/2011, 13h42   #11
Membre du Club
 
Avatar de Djromé
 
Inscription : juillet 2009
Messages : 161
Détails du profil
Informations personnelles :
Localisation : Luxembourg

Informations forums :
Inscription : juillet 2009
Messages : 161
Points : 58
Points : 58
Salut Jean-Pierre,

Je veux dire des variables qui font références à une adresse (donc String si je suis tes instructions).

Effectivement, avec ton exemple en Range, celà fonctionne!

@+
__________________
Merci les kracks,

Apprendre à un imbécile, c'est comme soigner un mort
"alors avec moi, bon courage!"
(дурака учить, что мертвого лечить, c'est plus beau en Russe!)
Djromé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 14h04   #12
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Pour Offset tu dois instancier la cellule de départ

Code :
1
2
3
4
Dim Cellule  As Range
 
Set Cellule = Range("A1").Address
Cellule.Offset(0, 3).Select
Maintenant sit u veux partie d’une adresse ça va être quelque chose comme

Code :
1
2
3
4
5
6
7
Dim Cellule  As Range
Dim lamêmeVariable As String
 
lamêmeVariable = Range("A1").Address
 
Set Cellule = Range(lamêmeVariable)
Range(Cellule, Cellule.Offset(0, 3)).Select
Si j’ai bien compris
Tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/11/2011, 11h04   #13
Membre du Club
 
Avatar de Djromé
 
Inscription : juillet 2009
Messages : 161
Détails du profil
Informations personnelles :
Localisation : Luxembourg

Informations forums :
Inscription : juillet 2009
Messages : 161
Points : 58
Points : 58
Salut Jean-Pierre,

Désolé pour le remerciement en retard,

Merci beaucoup!

@+
__________________
Merci les kracks,

Apprendre à un imbécile, c'est comme soigner un mort
"alors avec moi, bon courage!"
(дурака учить, что мертвого лечить, c'est plus beau en Russe!)
Djromé est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h35.


 
 
 
 
Partenaires

Hébergement Web