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

Aie, Aie, copie de cellule

1 réponse
Avatar
David
Salut Michdenis,

Merci pour ta reponse, Effectivement ma demande est un peu=20
flou. Ci joint le cas exact:
C'est le premier tableau que j'obtiens, avec chaque fois=20
un=20
nombre aleatoire de ligne et de colonnes quand je=20
rafraichis mes calculs
Type Vehicule=09
Megane Wk28 Wk29
Ess 3600 2950
Diesel 0 500
Type Ordinateur=09
Ibook Wk28 Wk29
FDD 0 850
noFDD 4000 4400
DVD 4500 5000

Je voudrais obtenir et ca sur un nombre variable de ligne,=20
le repere etant toujours la cellue "Type"
Type Vehicule=09
Megane Wk28 Wk29
Vehicule Megane Ess 3600 2950
Vehicule Megane Diesel 0 500
Vehicule Megane Type Ordinateur=09
Vehicule Megane Ibook Wk28 Wk29
Ordinateur Ibook FDD 0 850
Ordinateur Ibook noFDD 4000 4400
Ordinateur Ibook DVD 4500 5000


Donc pour rechercher les celulles en ofset et le colles=20
j'utilise:
Cells.Find(What:=3D("Type"), After:=3DActiveCell,=20
LookIn:=3DxlFormulas, LookAt:=3DxlWhole, SearchOrder _
:=3DxlByRows, SearchDirection:=3DxlNext,=20
MatchCase:=3DFalse).Activate
'
ActiveCell.Offset(0, 1).Copy
ActiveCell.Offset(2, -2).PasteSpecial

Cells.Find(What:=3D("Type"), After:=3DActiveCell,=20
LookIn:=3DxlFormulas, LookAt:=3DxlWhole, SearchOrder _
:=3DxlByRows, SearchDirection:=3DxlNext,=20
MatchCase:=3DFalse).Activate
'
ActiveCell.Offset(1, 0).Copy
ActiveCell.Offset(2, -1).PasteSpecial


Par contre je ne sais pas comment faire pour:
1- repeter cette 1er operation de copier coller tout le=20
long de mon tableau,


2- Coller dans les espaces le reste=20

Quand penses tu ?

Merci=20

David

>-----Message d'origine-----
>Bonjour David,
>
>Tu aurais =E0 d=E9finir le plus pr=E9cis=E9ment ton probl=E8me.
>la qualit=E9 des r=E9ponses seraient =E0 mon avis meilleure.
>
>Voici un exemple :
>
>Recherche dans la feuille 1 , la cellule o=F9 il est =E9crit=20
toto et
>copie cette cellule et les 10 cellules en dessous vers
>une plage nomm=E9e dest dans la feuille 2
>
>'--------------
>Sub TrouverToto()
>
>Dim Rg As Range, Dest As Range
>
>With Worksheets("Feuil2")
> Set Dest =3D .Range("G10")
>End With
>
>With Worksheets("Feuil1")
> Set Rg =3D .Cells.Find("Toto")
> If Not Rg Is Nothing Then
> Rg.Resize(10, 1).Copy Dest
> End If
>End With
>
>End Sub
>'----------------
>
>
>Salutations!
>
>
>
>"David" <dvtournadre@free.fr> a =E9crit dans le message de=20
news:014c01c34004$86f8b940$a501280a@phx.gbl...
>Salut,
>
>Je tourne en rond sur un pb pourtant basique:
>Comment faire pour detecter une valeur Toto dans une
>colonne, selectionner des cellules en offset par rapport
>a cette valeur Toto et copier le tout sur plusieurs
>colonnes a cote jusqu;a ce que la valeut TOTO soit ne
>nouveau detecter e t recommencer jusq=E1 la fin d=FAn
>tableau?
>
>Merci d'avance pour vos pr=E9cieuses reponses
>
>David
>
>
>.
>
.

1 réponse

Avatar
michdenis
Bonjour David,

Désolé, mais je n'ai pas trop compris comment tu traites les données.

Voici cependant, comment faire une boucle pour retrouver sur une plage de cellules données une boucle identifiant la cellule
ayant la valeur "Type". Attention à l'un des paramètres de la méthode "Find" "LookAt" .Si le mot recherché "Type" est seul
dans la cellule utilise Xlwhole sinon, tu te sers de XlPart.

'---------------------------------------
Sub copier_déplacer()

Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A655356").End(xlUp).Row)
End With

With Rg
Do
Set c = .Find("Type", LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
'C représente la cellule contenant le mot "Type"
'défini le traitement que tu veux obtenir à partir de la
'cellule contenant le mot "Style"

'La ligne suivante de code t'amène à la cellule suivante
'qui contient le mot "Style"
Set c = .FindNext(c)
End If
Loop While Not c Is Nothing
Set Rg = Nothing

End Sub
'---------------------------------------


Salutations!




"David" a écrit dans le message de news:098201c3409b$1192ae80$
Salut Michdenis,

Merci pour ta reponse, Effectivement ma demande est un peu
flou. Ci joint le cas exact:
C'est le premier tableau que j'obtiens, avec chaque fois
un
nombre aleatoire de ligne et de colonnes quand je
rafraichis mes calculs
Type Vehicule
Megane Wk28 Wk29
Ess 3600 2950
Diesel 0 500
Type Ordinateur
Ibook Wk28 Wk29
FDD 0 850
noFDD 4000 4400
DVD 4500 5000

Je voudrais obtenir et ca sur un nombre variable de ligne,
le repere etant toujours la cellue "Type"
Type Vehicule
Megane Wk28 Wk29
Vehicule Megane Ess 3600 2950
Vehicule Megane Diesel 0 500
Vehicule Megane Type Ordinateur
Vehicule Megane Ibook Wk28 Wk29
Ordinateur Ibook FDD 0 850
Ordinateur Ibook noFDD 4000 4400
Ordinateur Ibook DVD 4500 5000


Donc pour rechercher les celulles en ofset et le colles
j'utilise:
Cells.Find(What:=("Type"), After:¬tiveCell,
LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder _
:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse).Activate
'
ActiveCell.Offset(0, 1).Copy
ActiveCell.Offset(2, -2).PasteSpecial

Cells.Find(What:=("Type"), After:¬tiveCell,
LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder _
:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse).Activate
'
ActiveCell.Offset(1, 0).Copy
ActiveCell.Offset(2, -1).PasteSpecial


Par contre je ne sais pas comment faire pour:
1- repeter cette 1er operation de copier coller tout le
long de mon tableau,


2- Coller dans les espaces le reste

Quand penses tu ?

Merci

David

-----Message d'origine-----
Bonjour David,

Tu aurais à définir le plus précisément ton problème.
la qualité des réponses seraient à mon avis meilleure.

Voici un exemple :

Recherche dans la feuille 1 , la cellule où il est écrit
toto et

copie cette cellule et les 10 cellules en dessous vers
une plage nommée dest dans la feuille 2

'--------------
Sub TrouverToto()

Dim Rg As Range, Dest As Range

With Worksheets("Feuil2")
Set Dest = .Range("G10")
End With

With Worksheets("Feuil1")
Set Rg = .Cells.Find("Toto")
If Not Rg Is Nothing Then
Rg.Resize(10, 1).Copy Dest
End If
End With

End Sub
'----------------


Salutations!



"David" a écrit dans le message de
news:014c01c34004$86f8b940$

Salut,

Je tourne en rond sur un pb pourtant basique:
Comment faire pour detecter une valeur Toto dans une
colonne, selectionner des cellules en offset par rapport
a cette valeur Toto et copier le tout sur plusieurs
colonnes a cote jusqu;a ce que la valeut TOTO soit ne
nouveau detecter e t recommencer jusqá la fin dún
tableau?

Merci d'avance pour vos précieuses reponses

David


.

.