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

Résolu
beginnerales Messages postés 11 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 1 avril 2012 - 30 mars 2012 à 00:29
beginnerales Messages postés 11 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 1 avril 2012 - 30 mars 2012 à 15:41
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
30 mars 2012 à 11:56
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
3
Utilisateur anonyme
30 mars 2012 à 04:24
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.
0
beginnerales Messages postés 11 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 1 avril 2012
30 mars 2012 à 09:44
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
30 mars 2012 à 09:59
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
beginnerales Messages postés 11 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 1 avril 2012
30 mars 2012 à 11:45
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.
0
beginnerales Messages postés 11 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 1 avril 2012
30 mars 2012 à 15:41
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
0