Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sélection multiple en VBA

4 réponses
Avatar
Olivier
Bonjour à tous,

J'ai un petit problème sur une sélection multiple de cellules en VBA.

J'ai des données en colonne A. Dans cette colonne, je sélectionne certaines
cellules discontinues (Par exemple A1; A3; A5)
J'aimerai par une macro aller coller ces cellules sur une autre feuille,
tout en sélectionnant en même temps les cellules correspondantes en colonne
C (soit C1, C3, C5).
Il convient donc d'ajouter à la selection du départ une nouvelle sélection
dans une autre colonne.

Je pense qu'il faut utiliser la méthode Application.Union, mais je n'y
parviens pas.

Sub CopieCasier()
Dim Cellule As Range
Dim MaSelection As Range
Dim Plage As Range

Set Plage = Worksheets(1).Range("A1:C5")

Prems = True

For Each Cellule In Selection
If Prems = True Then
Set MaSelection = Cellule
Prems = False
End If
Set MaSelection = Application.Union(MaSelection, Cellule.Offset(0,
1).Select)
Next
MaSelection.Select

End Sub

Je vous remercie d'avance pour votre aide.

Olivier

4 réponses

Avatar
francois.forcet
On 18 jan, 15:59, "Olivier" wrote:
Bonjour à tous,

J'ai un petit problème sur une sélection multiple de cellules en VBA.

J'ai des données en colonne A. Dans cette colonne, je sélectionne cert aines
cellules discontinues (Par exemple A1; A3; A5)
J'aimerai par une macro aller coller ces cellules sur une autre feuille,
tout en sélectionnant en même temps les cellules correspondantes en co lonne
C (soit C1, C3, C5).
Il convient donc d'ajouter à la selection du départ une nouvelle sél ection
dans une autre colonne.

Je pense qu'il faut utiliser la méthode Application.Union, mais je n'y
parviens pas.

Sub CopieCasier()
    Dim Cellule As Range
    Dim MaSelection As Range
    Dim Plage As Range

    Set Plage = Worksheets(1).Range("A1:C5")

    Prems = True

    For Each Cellule In Selection
        If Prems = True Then
            Set MaSelection = Cellule
            Prems = False
        End If
        Set MaSelection = Application.Union(MaSelection, Cellule .Offset(0,
1).Select)
    Next
    MaSelection.Select

End Sub

Je vous remercie d'avance pour votre aide.

Olivier


Salut Olivier

Pourquoi ne pas copier cellule par cellule
Prenons Feuil1 colonne A à recopier les cellules portant le nom "Toto"
vers Feuil2 colonne C même ligne
Ainsi :

Sheets("Feuil1").Activate
For Each c in Worksheets("Feuil1").Range("A1",[A65535].end(xlup))
If c = "Toto" Then
c.copy Sheets("Feuil2").Range("C" & c.row)
End If
Next

C'est pas mieux ????

Avatar
Daniel.C
Bonjour.
Essaie :

Sub test()
Dim c As Range
For Each c In Selection
c.Copy _
Sheets(2).Range(c.Address).Offset(, 2)
End Sub

Cordialement.
Daniel
"Olivier" a écrit dans le message de news:

Bonjour à tous,

J'ai un petit problème sur une sélection multiple de cellules en VBA.

J'ai des données en colonne A. Dans cette colonne, je sélectionne
certaines cellules discontinues (Par exemple A1; A3; A5)
J'aimerai par une macro aller coller ces cellules sur une autre feuille,
tout en sélectionnant en même temps les cellules correspondantes en
colonne C (soit C1, C3, C5).
Il convient donc d'ajouter à la selection du départ une nouvelle sélection
dans une autre colonne.

Je pense qu'il faut utiliser la méthode Application.Union, mais je n'y
parviens pas.

Sub CopieCasier()
Dim Cellule As Range
Dim MaSelection As Range
Dim Plage As Range

Set Plage = Worksheets(1).Range("A1:C5")

Prems = True

For Each Cellule In Selection
If Prems = True Then
Set MaSelection = Cellule
Prems = False
End If
Set MaSelection = Application.Union(MaSelection, Cellule.Offset(0,
1).Select)
Next
MaSelection.Select

End Sub

Je vous remercie d'avance pour votre aide.

Olivier



Avatar
francois.forcet
On 18 jan, 15:59, "Olivier" wrote:
Bonjour à tous,

J'ai un petit problème sur unesélectionmultiple de cellules enVBA.

J'ai des données en colonne A. Dans cette colonne, je sélectionne cert aines
cellules discontinues (Par exemple A1; A3; A5)
J'aimerai par une macro aller coller ces cellules sur une autre feuille,
tout en sélectionnant en même temps les cellules correspondantes en co lonne
C (soit C1, C3, C5).
Il convient donc d'ajouter à la selection du départ une nouvelleséle ction
dans une autre colonne.

Je pense qu'il faut utiliser la méthode Application.Union, mais je n'y
parviens pas.

Sub CopieCasier()
    Dim Cellule As Range
    Dim MaSelection As Range
    Dim Plage As Range

    Set Plage = Worksheets(1).Range("A1:C5")

    Prems = True

    For Each Cellule In Selection
        If Prems = True Then
            Set MaSelection = Cellule
            Prems = False
        End If
        Set MaSelection = Application.Union(MaSelection, Cellule .Offset(0,
1).Select)
    Next
    MaSelection.Select

End Sub

Je vous remercie d'avance pour votre aide.

Olivier


Afin d'en faire profiter les lecteurs du forum ci-aprés la solution
que je t'ai proposé par mail et qui te conviens :

Salut Olivier
J'espère que tu as retrouvé une forme olympique !!!
Ce code copie la sélection colonne A de la feuil1 vers la colonne A
feuil2 ainsi que les cellules correspondantes colonne C feuil1 vers
la colonne B feuil2 :

A = Replace(Selection.Address, "A", "C")
Selection.Copy Sheets("Feuil2").Range("A1")
Range(A).Copy Sheets("Feuil2").Range("B1")

Celà te convient-il ???

Merci de confirmer

Avatar
Olivier
On 18 jan, 15:59, "Olivier" wrote:
Bonjour à tous,

J'ai un petit problème sur unesélectionmultiple de cellules enVBA.

J'ai des données en colonne A. Dans cette colonne, je sélectionne certaines
cellules discontinues (Par exemple A1; A3; A5)
J'aimerai par une macro aller coller ces cellules sur une autre feuille,
tout en sélectionnant en même temps les cellules correspondantes en colonne
C (soit C1, C3, C5).
Il convient donc d'ajouter à la selection du départ une nouvellesélection
dans une autre colonne.

Je pense qu'il faut utiliser la méthode Application.Union, mais je n'y
parviens pas.

Sub Copie()
Dim Cellule As Range
Dim MaSelection As Range
Dim Plage As Range

Set Plage = Worksheets(1).Range("A1:C5")

Prems = True

For Each Cellule In Selection
If Prems = True Then
Set MaSelection = Cellule
Prems = False
End If
Set MaSelection = Application.Union(MaSelection, Cellule.Offset(0,
1).Select)
Next
MaSelection.Select

End Sub

Je vous remercie d'avance pour votre aide.

Olivier


Afin d'en faire profiter les lecteurs du forum ci-aprés la solution
que je t'ai proposé par mail et qui te conviens :

Salut Olivier
J'espère que tu as retrouvé une forme olympique !!!
Ce code copie la sélection colonne A de la feuil1 vers la colonne A
feuil2 ainsi que les cellules correspondantes colonne C feuil1 vers
la colonne B feuil2 :

A = Replace(Selection.Address, "A", "C")
Selection.Copy Sheets("Feuil2").Range("A1")
Range(A).Copy Sheets("Feuil2").Range("B1")

Celà te convient-il ???

Merci de confirmer


Bonsoir François !

Ta solution me convient parfaitement, c'est ce qui me fallait !
Simple et efficace !

Bravo et merci encore !

Olivier