Quelle syntaxe pour sélectionde certaines cellules dans macro

premion

XLDnaute Junior
Bonjour à tous,

Tout d'abord j'espère que vous avez tous passé un très bon Noël. J'adore ce forum qui m'a permis de glaner de nombreuses formules que j'ai toujours pu adapter à mes besoins. Je vous remercie pour tout le soin que vous apportez toujours à rendre claires vos réponses.
J'ajoute enfin que je suis vraiment bluffé par les capacités d'Excel!

Mon problème (qu'on en finisse!) il est très simple. Dans la formules qui suit, je voudrais remplacer entireRow par seulement quelques cellules de la ligne.

c.EntireRow.Copy Destination:=Feuil2.Range("A" & i)

genre quelquechose comme ça:

i = Feuil2.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1
c.Range("A" & i, "B" & i, "C" & i, "I" & i, "J" & i, "K" & i).Copy Destination:=Feuil2.Range("A" & i)

il s'agit d'un bidouillage fait à partir d'une discussion du forum que j'essaye d'adapter à mon besoin.

Merci d'avance pour votre aide!

Philippe
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Quelle syntaxe pour sélectionde certaines cellules dans macro

Bonsoir Premion, bonsoir le forum,

essaie comme ça :
Code:
Dim pl As Range
Set pl = Application.Union(Range(Cells(i, 1), Cells(i, 3)), Range(Cells(i, 9), Cells(i, 11)))
pl.Copy Sheets("Feuil2").Cells(i, 1)
 

premion

XLDnaute Junior
Re : Quelle syntaxe pour sélectionde certaines cellules dans macro

Bonsoir Robert,

Merci beaucoup pour ta réponse rapide. Je n'ai pas du intégré correctement la formule, ça ne fonctionne pas:

en lieu et place de pl j'avais défini la variable c qui pour chaque variable en colonne Q supérieure à 0 permet de copier la sélection de cellules de la ligne concernée sur feuil2.

Sub Issue_Not_Invoiced()
'
' Macro1 Macro

Dim i%
Dim x%
Dim c As Range

x = Feuil1.Cells(Application.Rows.Count, "A").End(xlUp).Row
i = Feuil2.Cells(Application.Rows.Count, "A").End(xlUp).Row
Feuil2.Range("A2:AF" & i).ClearContents
For Each c In Feuil1.Range("Q5:Q" & x)
If c > 0 Then
i = Feuil2.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1
Set pl = Application.Union(Range(Cells(i, 1), Cells(i, 3)), Range(Cells(i, 9), Cells(i, 11)))
pl.Copy Sheets("Feuil2").Cells(i, 1)
End If
Next c
End Sub


A la place dans le code qui permettait de renvoyer la ligne entière il y avait:

For Each c In Feuil1.Range("Q5:Q" & x)
If c > 0 Then
i = Feuil2.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1
c.EntireRow.Copy Destination:=Feuil2.Range("A" & i)
End If

Merci encore
 

Staple1600

XLDnaute Barbatruc
Re : Quelle syntaxe pour sélectionde certaines cellules dans macro

Bonsoir à tous


Avec une autre écriture
Code:
Sub a()
Dim plg As Range
    With Feuil1.[A65536].End(xlUp)
        Set plg = Union(.Resize(, 3), .Item(1, 9).Resize(, 3))
    End With
MsgBox plg.Address ' pour test
plg.Copy Feuil2.[A1]
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Quelle syntaxe pour sélectionde certaines cellules dans macro

Bonsoir le fil, bonsoir le forum,

Peut-être comme ça :
Code:
Sub Issue_Not_Invoiced()
Dim i%
Dim x%
Dim c As Range
Dim pl As Range
 
x = Feuil1.Cells(Application.Rows.Count, "A").End(xlUp).Row
i = Feuil2.Cells(Application.Rows.Count, "A").End(xlUp).Row
Feuil2.Range("A2:AF" & i).ClearContents
For Each c In Feuil1.Range("Q5:Q" & x)
    If c > 0 Then
        i = Feuil2.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1
        With Sheets("Feuil1")
            Set pl = Application.Union(.Range(.Cells(i, 1), .Cells(i, 3)), .Range(.Cells(i, 9), .Cells(i, 11)))
        End With
        pl.Copy Sheets("Feuil2").Cells(i, 1)
    End If
Next c
End Sub
 

premion

XLDnaute Junior
Re : Quelle syntaxe pour sélectionde certaines cellules dans macro

Bonsoir,

En effet, JM, je joins un fichier ce sera plus parlant.

Dans la feuil1, j'ai toutes les données brutes
1- dans Feuil1 je voudrais sélectionner les lignes ou les valeurs en colonne P sont >0
2- je ne souhaite pas copier la ligne entière mais seulement les cellules en colonne A,B, C, I, K, L, M, N, O, P et Q de chaque ligne
3- je souhaite alors que chaque ligne soit copiée sur la feuil2 dans un nouveau tableau (cf cellules copiées en Feuil2)

Mille merci à tous pour votre temps et votre patience!

Bonne nuit

Philippe
 

Pièces jointes

  • Extraction infos.xlsm
    28.6 KB · Affichages: 56

Efgé

XLDnaute Barbatruc
Re : Quelle syntaxe pour sélectionde certaines cellules dans macro

Bonjour premion, Bonjopur Robert :), Bonjour Staple1600 :),
Une proposition (avec un exemple c'est plus simple...)
VB:
Sub Test()
Dim i&, C As Range
With Sheets("Feuil1")
    For i = 5 To .Cells(Rows.Count, 1).End(xlUp).Row
        If .Cells(i, 16) > 0 Then
            If C Is Nothing Then
                Set C = Union(.Range(.Cells(i, 1), .Cells(i, 3)), .Cells(i, 9), _
                        .Range(.Cells(i, 11), .Cells(i, 17)))
            Else
                Set C = Union(C, .Range(.Cells(i, 1), .Cells(i, 3)), .Cells(i, 9), _
                        .Range(.Cells(i, 11), .Cells(i, 17)))
            End If
        End If
    Next i
End With
C.Copy Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End Sub
Cordialement
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Quelle syntaxe pour sélectionde certaines cellules dans macro

Bonjour le fil, bonjour le forum,

Ben oui c'est quand même plus facile avec un fichier...
En pièce jointe ton fichier commentée :
 

Pièces jointes

  • Premion_v01.xls
    73 KB · Affichages: 42

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin