Union de données de type Range - Excel / VB

[Résolu]
Signaler
Messages postés
11
Date d'inscription
jeudi 22 juillet 2010
Statut
Membre
Dernière intervention
1 avril 2012
-
Messages postés
11
Date d'inscription
jeudi 22 juillet 2010
Statut
Membre
Dernière intervention
1 avril 2012
-
Bonjour à tous,

J'aurai aimé savoir si il est possible de créer en Visual Basic une boucle pour générer une union de données type Range ? Apparemment il ne semble pas être possible avec 'Set' d'ajouter une variable


Dim X As Range
Dim X2 As Range

Set X = Worksheets("Feuil1").Range(Chr(6) & "4")

If N > 1 Then
For jj = 1 To N
Set X2 = Worksheets("Feuil1").Range(Chr(6 + jj) & "4") // ERREUR ICI
Set X = Union(X, X2)
Next jj
End If


Merci à tous

beginnerales

6 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Je te confirme (je viens de tester) que ce n'est pas la syntaxe de la ligne en cause qui est fautive.*
Reste alors uniquement ce que je t'ai déjà dit.
Objet introuvable ou inaccessible pour une raison quelconque, que tu es seul à pouvoir déterminer.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Bonjour,

Ton chr(6) est un caractère de contrôle ASCII. Tape caractères dans l'aide de VBA. Ensuite ouvre la rubrique Jeux de caractères 0 à 127. Tu vas voir que les les lettres majuscules commencent à 65.


Non, Non, Non ! La touche F1 ne donne pas la peste.
Messages postés
11
Date d'inscription
jeudi 22 juillet 2010
Statut
Membre
Dernière intervention
1 avril 2012

Opus j'ai mal recopié mon code. J'avais bien mis 68 et j'obtiens une erreur lorsque je définis avec 'Set', un type Range avec une variable à l'intérieur. Des idées pour résoudre ce problème ?

Dim X As Range
Dim X2 As Range

Set X = Worksheets("Feuil1").Range(Chr(68) & "4")
N=20

If N > 1 Then
For jj = 1 To N
Set X2 = Worksheets("Feuil1").Range(Chr(68 + (jj+2)) & "4") // ERREUR ICI
Set X = Union(X, X2)
Next jj
End If



beginnerales





PS: La touche F1 ne m'apporte pas d'aide la-dessus
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
Tu dis "erreur ici", mais sans prendre la peine de la préciser !
La ligne que tu incrimines ne comporte aucune erreur de syntaxe.
Quelle est donc l'erreur ?
Il y a tout lieu de penser (bien que tu n'en aies pas dit le moindre mot !) qu'il s'agit de l'erreur 9, hein ...
(ce qui voudrait dire que n'est pas trouvée la feuille nommée Feuil1 dans le classeur actif !)

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
11
Date d'inscription
jeudi 22 juillet 2010
Statut
Membre
Dernière intervention
1 avril 2012

Bonjour,

Et non ce n'est pas l'erreur 9 .

Effectivement si je ne dis pas quel message d'erreur je reçois, c pas évident de me répondre. J'obtiens l'Erreur '1004': Erreur définie par l'application ou par l'objet.
Messages postés
11
Date d'inscription
jeudi 22 juillet 2010
Statut
Membre
Dernière intervention
1 avril 2012

Oui effectivement, en fait mon code marchait dès le début. C juste que je n'avais pas fait attention que m'a boucle 'dépassait' et essayait de lire des cellules sans données. En fait, ce bout de programme est issu d'un ensemble bien plus complexe. En essayant d'expliquer mon problème sur ce forum et en simplifiant mon extrait de code pour expliquer mon problème et ben ... je l'ai résolu et mis un code qui marchait. Super


A ces gens qui posent des questions stupides