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

Copie d'une plage de cellules ?!

13 réponses
Avatar
NICO.S
Bonjour à tous,

Je suis pas mal newbie en macro VBA, je n'arrives pas à sélectionner une
plage de cellule (4lignesx4colonnes) et la copier (voire mieux la
déplacer) dans une autre feuille.

Voilà ma routine qui pose problème :

=================================================

For Each Cell In Range("A1:A100")
On Error Resume Next

Set Trouvé = Cells.Find(What:="Avis N°")
Trouvé.Activate

recup = MsgBox("Dossier d'appel d'offres trouvé : " & Trouvé & Chr(13) &
Chr(13) & "Voulez-vous récupérer ce dossier ?", vbYesNo +
vbDefaultButton1 + vbQuestion, "Scan des données importées")

If recup = vbYes Then
Range(Cells(ActiveCell), Cells.Offset(3, 3)).Select
Selection.Cut
Worksheets("AO").Select
Worksheets("AO").Row (1)
Worksheets("AO").Paste
Worksheets(1).Select

Else
ActiveCell.EntireRow.Select
Selection.Delete

End If

Next

End Sub

===============================================================

Je penses que c'est au niveau de la façon de sélectionner la plage que
cela pose problème. C'est à dire que je ne sais pas à l'avance à partir
de quelle cellule, ma sélection de 4 lignes * 4 colonnes doit se faire.

Si j'arrivais déjà à faire cela, ce serait le bonheur !

Merci par avance.

Nicolas.

10 réponses

1 2
Avatar
Bourby
bonjour,

si je comprends bien, ce que tu veux sélectionner,
c'est
Range(Trouvé, Trouvé.Offset(4, 4))

ça marche?

Bourby

"NICO.S" a écrit dans le message news:

Bonjour à tous,

Je suis pas mal newbie en macro VBA, je n'arrives pas à sélectionner une
plage de cellule (4lignesx4colonnes) et la copier (voire mieux la
déplacer) dans une autre feuille.

Voilà ma routine qui pose problème :

================================================ >
For Each Cell In Range("A1:A100")
On Error Resume Next

Set Trouvé = Cells.Find(What:="Avis N°")
Trouvé.Activate

recup = MsgBox("Dossier d'appel d'offres trouvé : " & Trouvé & Chr(13) &
Chr(13) & "Voulez-vous récupérer ce dossier ?", vbYesNo +
vbDefaultButton1 + vbQuestion, "Scan des données importées")

If recup = vbYes Then
Range(Cells(ActiveCell), Cells.Offset(3, 3)).Select
Selection.Cut
Worksheets("AO").Select
Worksheets("AO").Row (1)
Worksheets("AO").Paste
Worksheets(1).Select

Else
ActiveCell.EntireRow.Select
Selection.Delete

End If

Next

End Sub

============================================================== >
Je penses que c'est au niveau de la façon de sélectionner la plage que
cela pose problème. C'est à dire que je ne sais pas à l'avance à partir
de quelle cellule, ma sélection de 4 lignes * 4 colonnes doit se faire.

Si j'arrivais déjà à faire cela, ce serait le bonheur !

Merci par avance.

Nicolas.






Avatar
NICO.S
Oui merci bcp Bourby, la solution était là ... ! :)

Jvé essayer d'en faire kkchose maintenant de ça !

++

NICO.S



"Bourby" écrivait news:OFKe6v9JEHA.3292
@TK2MSFTNGP11.phx.gbl:

bonjour,

si je comprends bien, ce que tu veux sélectionner,
c'est
Range(Trouvé, Trouvé.Offset(4, 4))

ça marche?

Bourby

"NICO.S" a écrit dans le message news:

Bonjour à tous,

Je suis pas mal newbie en macro VBA, je n'arrives pas à sélectionner
une


plage de cellule (4lignesx4colonnes) et la copier (voire mieux la
déplacer) dans une autre feuille.

Voilà ma routine qui pose problème :

================================================ >>
For Each Cell In Range("A1:A100")
On Error Resume Next

Set Trouvé = Cells.Find(What:="Avis N°")
Trouvé.Activate

recup = MsgBox("Dossier d'appel d'offres trouvé : " & Trouvé & Chr(13)
&


Chr(13) & "Voulez-vous récupérer ce dossier ?", vbYesNo +
vbDefaultButton1 + vbQuestion, "Scan des données importées")

If recup = vbYes Then
Range(Cells(ActiveCell), Cells.Offset(3, 3)).Select
Selection.Cut
Worksheets("AO").Select
Worksheets("AO").Row (1)
Worksheets("AO").Paste
Worksheets(1).Select

Else
ActiveCell.EntireRow.Select
Selection.Delete

End If

Next

End Sub

============================================================== >>
Je penses que c'est au niveau de la façon de sélectionner la plage que
cela pose problème. C'est à dire que je ne sais pas à l'avance à
partir


de quelle cellule, ma sélection de 4 lignes * 4 colonnes doit se
faire.



Si j'arrivais déjà à faire cela, ce serait le bonheur !

Merci par avance.

Nicolas.











Avatar
NICO.S
Bon c super ca marche comme je le disais dans le précédent message.

Maintenant que j'arrives à coller ce que je veux dans la feuille "AO",
j'aimerais qu'il colle automatiquement à la fin de la liste, c a dire à
partir de la première cellule vide. .. J'ai essayé +sieurs méthodes glané
sur le net, mais ca marche point ! :{

Est-il possible également d'ajouter sur la dernière ligne du collage une
barre de séparation ? afin de mieux visualiser les différents "collage"
(ca me fait penser à un scketch de Dany Boon ... il faut lire public ...
:))

Merci d'avance.

NICO.S



"NICO.S" écrivait
news::

Oui merci bcp Bourby, la solution était là ... ! :)

Jvé essayer d'en faire kkchose maintenant de ça !

++

NICO.S



"Bourby" écrivait news:OFKe6v9JEHA.3292
@TK2MSFTNGP11.phx.gbl:

bonjour,

si je comprends bien, ce que tu veux sélectionner,
c'est
Range(Trouvé, Trouvé.Offset(4, 4))

ça marche?

Bourby

"NICO.S" a écrit dans le message news:

Bonjour à tous,

Je suis pas mal newbie en macro VBA, je n'arrives pas à sélectionner
une


plage de cellule (4lignesx4colonnes) et la copier (voire mieux la
déplacer) dans une autre feuille.

Voilà ma routine qui pose problème :

================================================ >>>
For Each Cell In Range("A1:A100")
On Error Resume Next

Set Trouvé = Cells.Find(What:="Avis N°")
Trouvé.Activate

recup = MsgBox("Dossier d'appel d'offres trouvé : " & Trouvé & Chr
(13)



&
Chr(13) & "Voulez-vous récupérer ce dossier ?", vbYesNo +
vbDefaultButton1 + vbQuestion, "Scan des données importées")

If recup = vbYes Then
Range(Cells(ActiveCell), Cells.Offset(3, 3)).Select
Selection.Cut
Worksheets("AO").Select
Worksheets("AO").Row (1)
Worksheets("AO").Paste
Worksheets(1).Select

Else
ActiveCell.EntireRow.Select
Selection.Delete

End If

Next

End Sub

============================================================== >>>
Je penses que c'est au niveau de la façon de sélectionner la plage
que



cela pose problème. C'est à dire que je ne sais pas à l'avance à
partir


de quelle cellule, ma sélection de 4 lignes * 4 colonnes doit se
faire.



Si j'arrivais déjà à faire cela, ce serait le bonheur !

Merci par avance.

Nicolas.
















Avatar
Clément Marcotte
Jvé essayer d'en faire kkchose maintenant de ça !


Maudite paresse

Avatar
ru-th
Salut

j'aimerais qu'il colle automatiquement à la fin de la liste
Range(Trouvé, Trouvé.Offset(4, 4)).copy range("a" &[a65536].end(xlup).row+1)

d'ajouter sur la dernière ligne du collage une
barre de séparation ?
qu'entends-tu par barre de séparation : encadrement ?, un objet trait ?


a+
rural thierry
"NICO.S" a écrit dans le message de news:

Bon c super ca marche comme je le disais dans le précédent message.

Maintenant que j'arrives à coller ce que je veux dans la feuille "AO",
j'aimerais qu'il colle automatiquement à la fin de la liste, c a dire à
partir de la première cellule vide. .. J'ai essayé +sieurs méthodes glané
sur le net, mais ca marche point ! :{

Est-il possible également d'ajouter sur la dernière ligne du collage une
barre de séparation ? afin de mieux visualiser les différents "collage"
(ca me fait penser à un scketch de Dany Boon ... il faut lire public ...
:))

Merci d'avance.

NICO.S



"NICO.S" écrivait
news::

Oui merci bcp Bourby, la solution était là ... ! :)

Jvé essayer d'en faire kkchose maintenant de ça !

++

NICO.S



"Bourby" écrivait news:OFKe6v9JEHA.3292
@TK2MSFTNGP11.phx.gbl:

bonjour,

si je comprends bien, ce que tu veux sélectionner,
c'est
Range(Trouvé, Trouvé.Offset(4, 4))

ça marche?

Bourby

"NICO.S" a écrit dans le message news:

Bonjour à tous,

Je suis pas mal newbie en macro VBA, je n'arrives pas à sélectionner
une


plage de cellule (4lignesx4colonnes) et la copier (voire mieux la
déplacer) dans une autre feuille.

Voilà ma routine qui pose problème :

================================================ > >>>
For Each Cell In Range("A1:A100")
On Error Resume Next

Set Trouvé = Cells.Find(What:="Avis N°")
Trouvé.Activate

recup = MsgBox("Dossier d'appel d'offres trouvé : " & Trouvé & Chr
(13)



&
Chr(13) & "Voulez-vous récupérer ce dossier ?", vbYesNo +
vbDefaultButton1 + vbQuestion, "Scan des données importées")

If recup = vbYes Then
Range(Cells(ActiveCell), Cells.Offset(3, 3)).Select
Selection.Cut
Worksheets("AO").Select
Worksheets("AO").Row (1)
Worksheets("AO").Paste
Worksheets(1).Select

Else
ActiveCell.EntireRow.Select
Selection.Delete

End If

Next

End Sub

============================================================== > >>>
Je penses que c'est au niveau de la façon de sélectionner la plage
que



cela pose problème. C'est à dire que je ne sais pas à l'avance à
partir


de quelle cellule, ma sélection de 4 lignes * 4 colonnes doit se
faire.



Si j'arrivais déjà à faire cela, ce serait le bonheur !

Merci par avance.

Nicolas.




















Avatar
NICO.S
"ru-th" écrivait
news::

Salut

j'aimerais qu'il colle automatiquement à la fin de la liste
Range(Trouvé, Trouvé.Offset(4, 4)).copy range("a"

&[a65536].end(xlup).row+1)
d'ajouter sur la dernière ligne du collage une
barre de séparation ?
qu'entends-tu par barre de séparation : encadrement ?, un objet trait

?

a+
rural thierry



Merci Thierry,

Je v essayer cela.

Pour la séparation, je voulais parler d'un "objet trait" effectivement
sur toute la ligne.

++

NICO.S


Avatar
NICO.S
"Clément Marcotte" écrivait
news:u1uClA#:

Jvé essayer d'en faire kkchose maintenant de ça !


Maudite paresse





Bah non pas du tout, mais j'essaie surtout de résoudre les problèmes tout
seul avant de faire appel à d'autres connaissances comme les votres, ô
grand maître d'excel. :)

++

NICO.S


Avatar
NICO.S
Remoi,

Je viens d'essayer =>

If recup = vbYes Then

Range(Trouvé, Trouvé.Offset(3, 3)).Select
Selection.Cut
Worksheets("AO").Range("a" & [a65536].End(xlUp).Row + 1).Select
Worksheets("AO").Paste
Worksheets(1).Select

===============
Il me colle bien le range souhaité dans A1 la première fois, mais avec les
autres Range "Trouvé" suivant également... LA détection de la première
cellule vide dans la colonne A, ne marche donc pas ...

plz hlp !

NICO.S




"NICO.S" écrivait
news::

"ru-th" écrivait
news::

Salut

j'aimerais qu'il colle automatiquement à la fin de la liste
Range(Trouvé, Trouvé.Offset(4, 4)).copy range("a"

&[a65536].end(xlup).row+1)
d'ajouter sur la dernière ligne du collage une barre de séparation ?
qu'entends-tu par barre de séparation : encadrement ?, un objet trait

?

a+
rural thierry



Merci Thierry,

Je v essayer cela.

Pour la séparation, je voulais parler d'un "objet trait" effectivement
sur toute la ligne.

++

NICO.S






Avatar
ru-th
Salut

Sub test()
cherche = InputBox("quoi toi chercher ?")
On Error GoTo erreur
i = 1
suite:
Set trouvé = Range("a" & i & ":a1000").Find(What:=cherche)
trouvé.Activate
i = trouvé.Row + 1
recup = MsgBox("Dossier d'appel d'offres trouvé : " & trouvé & Chr(13) & _
Chr(13) & "Voulez-vous récupérer ce dossier ?", vbYesNo + _
vbDefaultButton1 + vbQuestion, "Scan des données importées")
If recup = vbYes Then
trouvé.Copy Worksheets("AO").Range("a" _
& Worksheets("AO").[a65536].End(xlUp).Row + 1)
Else
ActiveCell.EntireRow.Delete
End If
GoTo suite
erreur:
MsgBox "fin trouvé"
End Sub


"NICO.S" a écrit dans le message de news:

Remoi,

Je viens d'essayer =>

If recup = vbYes Then

Range(Trouvé, Trouvé.Offset(3, 3)).Select
Selection.Cut
Worksheets("AO").Range("a" & [a65536].End(xlUp).Row + 1).Select
Worksheets("AO").Paste
Worksheets(1).Select

=============== >
Il me colle bien le range souhaité dans A1 la première fois, mais avec les
autres Range "Trouvé" suivant également... LA détection de la première
cellule vide dans la colonne A, ne marche donc pas ...

plz hlp !

NICO.S




"NICO.S" écrivait
news::

"ru-th" écrivait
news::

Salut

j'aimerais qu'il colle automatiquement à la fin de la liste
Range(Trouvé, Trouvé.Offset(4, 4)).copy range("a"

&[a65536].end(xlup).row+1)
d'ajouter sur la dernière ligne du collage une barre de séparation ?
qu'entends-tu par barre de séparation : encadrement ?, un objet trait

?

a+
rural thierry



Merci Thierry,

Je v essayer cela.

Pour la séparation, je voulais parler d'un "objet trait" effectivement
sur toute la ligne.

++

NICO.S










Avatar
NICO.S
Merci ça fonctionne cette fois ! :)

J'ai du adapter un poil, je voulais copier un range de 4 x 4 cellules à
partir de la cellule variable "trouvé"

If recup = vbYes Then
Range(trouvé, trouvé.Offset(3, 3)).Copy Worksheets("AO").Range("a" _
& Worksheets("AO").[a65536].End(xlUp).Row + 1)

++

NICO.S







"ru-th" écrivait
news::

Salut

Sub test()
cherche = InputBox("quoi toi chercher ?")
On Error GoTo erreur
i = 1
suite:
Set trouvé = Range("a" & i & ":a1000").Find(What:=cherche)
trouvé.Activate
i = trouvé.Row + 1
recup = MsgBox("Dossier d'appel d'offres trouvé : " & trouvé & Chr(13)
& _ Chr(13) & "Voulez-vous récupérer ce dossier ?", vbYesNo + _
vbDefaultButton1 + vbQuestion, "Scan des données importées")
If recup = vbYes Then
trouvé.Copy Worksheets("AO").Range("a" _
& Worksheets("AO").[a65536].End(xlUp).Row + 1)
Else
ActiveCell.EntireRow.Delete
End If
GoTo suite
erreur:
MsgBox "fin trouvé"
End Sub




1 2