Pb sélection plage avec macro

  • Initiateur de la discussion Initiateur de la discussion Fredrennes
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

Fredrennes

Guest
Bonsoir,

Voici ma macro

J'ai des données en cellules A1, A2, A3 et B1

Je veux sélectionner la plage de B2 à B3 pour plus tard afficher la correspondance de A2 & A3

Pq cela ne fonctionne-t-il pas ?

Merci de votre aide.


Sub test()
Worksheets("Base_CA").Activate
var1 = Range("B" & Worksheets("Base_CA").Range("A65536").End(xlUp).Row)
var2 = Range("B" & Worksheets("Base_CA").Range("B65536").End(xlUp).Row + 1)
c = ("var1:var2")

Range(c).Select

End Sub
 
Re : Pb sélection plage avec macro

Bonsoir Fredennes,

Tu devrais pouvoir essayer comme ça :
Code:
[SIZE=2][COLOR=blue]Sub[/COLOR] test()
[COLOR=blue]Dim[/COLOR] var1 [COLOR=blue]As[/COLOR] Range, var2 [COLOR=blue]As[/COLOR] Range
      [COLOR=blue]With[/COLOR] Worksheets("Base_CA")
            .Activate
            [COLOR=blue]Set[/COLOR] var1 = .Range("B65536").[COLOR=blue]End[/COLOR](xlUp)
            [COLOR=blue]Set[/COLOR] var2 = var1.Offset(1, 0)
            .Range(var1, var2).[COLOR=blue]Select
      End With
End Sub[/COLOR][/SIZE]
Sinon, si on veut réduire ce code à une seule ligne :
Code:
[SIZE=2][COLOR=blue]Sub[/COLOR] test()
      Application.Goto Worksheets("Base_CA").Range("B65536").[COLOR=blue]End[/COLOR](xlUp).Resize(2)
[COLOR=blue]End Sub[/COLOR][/SIZE]
Cordialement,
 
Re : Pb sélection plage avec macro

Salut
Une autre vision du code

Sub test()
Worksheets("Base_CA").Activate
var1 = Range("B" & Range("A65536").End(xlUp).Row).address(0,0)
var2 = Range("B" & Range("B65536").End(xlUp).Row + 1).address(0,0)
c = (var1 & ":" & var2)
Range(c).Select
End Sub[/QUOTE]

ou en une seule
Range("B" & Range("A65536").End(xlUp).Row & ":B" & Range("B65536").End(xlUp).Row + 1).Select


Ton problème :

var1 = Range("B" & Worksheets("Base_CA").Range("A65536").End(xlUp).Ro w)
var1 = valeur de la cellule B3 (A1, A2, A3 non vide)
var2 = Range("B" & Worksheets("Base_CA").Range("B65536").End(xlUp).Ro w + 1)
Var2 = valeur de la cellule B2 (B1 non vide)

Range("B1") = Range("B1").Value

Si tu t'obligeais à déclarer tes variables, tu aurais sans doute eu une incompatibilité de type
donc si tu veux définir une plage,(la différence de colonne entre A et B, d'après ce que je comprends), il faut que tu construises le texte qui sert à la définition : si B1 = 1

Range("B1") = Cells(1,2) = Range("B1").Value = cells(1,2).value = 1
Range("B1").address = cells(1,2).address = "$B$1"
Range("B1").address(0,0) = cells(1,2).address(0,0) = "B1"

Après, c'est comme les formules sous Excel
Range("B1").address(0,0) & ":" & cells(2,5).address = "B1:$E$2"

A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
914
Réponses
4
Affichages
735
Réponses
10
Affichages
792
Retour