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

copie cellules avec régles

3 réponses
Avatar
marchepied
Bonjour,
je voudrai faire une macro qui permettrai de copier les cellules de
A4 / A5 =E0 AA4 / AA5 vers les cellules d=E9marrant en AF4 / AF5
copie en avancant vers la droite. mais avec la r=E9gle suivante:
si la cellule de la ligne 5 contient un chiffre (exemple: 001, 002,
003 etc...) on copie les 2 cellules (exemple A4 & A5) vers AF4 & AF5
tel quelles. par contre, si la cellule de la ligne 5 contient une
plage de chiffres (exemple: 001-003 ou 001-007 etc...) (le d=E9but est
toujours 001) la copie vers la droite doit =EAtre =E9clat=E9 (c'est =E0 dir=
e
une colonne pour chaque chiffres 001, 002, 003 etc... jusqu'a la
limite finale.
exemple de ma base initiale:
DG CS RH CG (ligne 4)
002 001-006 001 001 (ligne 5)

je voudrai la copie suivante plus loin =E0 droite:
DG CS CS CS CS CS CS RH CG (ligne4)
002 001 002 003 004 005 006 001 001 (ligne5)

merci pour votre aide,

3 réponses

Avatar
marchepied
On 7 jan, 16:00, wrote:
Bonjour,
je voudrai faire une macro qui permettrai de copier les cellules de
A4 / A5  à  AA4 / AA5   vers les cellules   démarrant en AF4 / AF5
copie en avancant vers la droite.   mais avec la régle suivante:
si la cellule de la ligne 5 contient un chiffre (exemple: 001, 002,
003 etc...)  on copie les 2 cellules (exemple A4 & A5) vers AF4 & AF5
tel quelles. par contre, si la cellule de la ligne 5 contient une
plage de chiffres (exemple: 001-003  ou 001-007 etc...) (le début est
toujours 001) la copie vers la droite doit être éclaté (c'est à d ire
une colonne pour chaque chiffres 001, 002, 003 etc... jusqu'a la
limite finale.
exemple de ma base initiale:
DG        CS         RH       CG             (ligne 4)
002     001-006     001      001             (l igne 5)

je voudrai la copie suivante  plus loin à droite:
DG   CS     CS    CS    CS    CS    CS     RH     CG       (ligne4)
002   001    002    003   004   005   006    001     001      (ligne5)

merci pour votre aide,



--------------------------------------------------------------------------- ------------------------------------------------------------
Bonjour,
ignorez ma question précédente, et trouvez ci-dessous une question
plus concise:
j'aimerai modifier la macro ci-dessous, pour que, au lieu du 2eme "="
il y a "contient au moins"
sachant que c.Offset(1, 0) contient "002" et Sheets(onglet(1)).Range
("G" & i) contient "001 002 003 007" je voudrai que dans ce cas, la
commande en dessous du "then" s'exécute. (sachant que le 1er "=" est
OK.

If c = Sheets(onglet(1)).Range("F" & i) And c.Offset(1, 0) = Sheets
(onglet(1)).Range("G" & i) Then
Sheets(onglet(1)).Range("M" & i) = c.Offset(-1, 0)
End If

en espérant que cela soit plus clair, merci pour votre aide.
Marchepied
Avatar
michdenis
En supposant que j'ai compris, essaie ceci :

'--------------------------
If c = Sheets(onglet(1)).Range("F" & i) And _
InStr(1, Sheets(onglet(1)).Range("G" & i), c.Offset(1, 0),
vbTextCompare) <> 0 Then
Sheets(onglet(1)).Range("M" & i) = c.Offset(-1, 0)
End If
'--------------------------

Attention aux lignes coupées par le service de messagerie !



a écrit dans le message de news:

On 7 jan, 16:00, wrote:
Bonjour,
je voudrai faire une macro qui permettrai de copier les cellules de
A4 / A5 à AA4 / AA5 vers les cellules démarrant en AF4 / AF5
copie en avancant vers la droite. mais avec la régle suivante:
si la cellule de la ligne 5 contient un chiffre (exemple: 001, 002,
003 etc...) on copie les 2 cellules (exemple A4 & A5) vers AF4 & AF5
tel quelles. par contre, si la cellule de la ligne 5 contient une
plage de chiffres (exemple: 001-003 ou 001-007 etc...) (le début est
toujours 001) la copie vers la droite doit être éclaté (c'est à dire
une colonne pour chaque chiffres 001, 002, 003 etc... jusqu'a la
limite finale.
exemple de ma base initiale:
DG CS RH CG (ligne 4)
002 001-006 001 001 (ligne 5)

je voudrai la copie suivante plus loin à droite:
DG CS CS CS CS CS CS RH CG (ligne4)
002 001 002 003 004 005 006 001 001 (ligne5)

merci pour votre aide,



---------------------------------------------------------------------------------------------------------------------------------------
Bonjour,
ignorez ma question précédente, et trouvez ci-dessous une question
plus concise:
j'aimerai modifier la macro ci-dessous, pour que, au lieu du 2eme "="
il y a "contient au moins"
sachant que c.Offset(1, 0) contient "002" et Sheets(onglet(1)).Range
("G" & i) contient "001 002 003 007" je voudrai que dans ce cas, la
commande en dessous du "then" s'exécute. (sachant que le 1er "=" est
OK.

If c = Sheets(onglet(1)).Range("F" & i) And c.Offset(1, 0) = Sheets
(onglet(1)).Range("G" & i) Then
Sheets(onglet(1)).Range("M" & i) = c.Offset(-1, 0)
End If

en espérant que cela soit plus clair, merci pour votre aide.
Marchepied
Avatar
marchepied
On 8 jan, 15:38, "michdenis" wrote:
En supposant que j'ai compris, essaie ceci :

'--------------------------
If c = Sheets(onglet(1)).Range("F" & i) And _
    InStr(1, Sheets(onglet(1)).Range("G" & i), c.Offset(1, 0),
vbTextCompare) <> 0 Then
        Sheets(onglet(1)).Range("M" & i) = c.Offset(-1, 0)
End If
'--------------------------

Attention aux lignes coupées par le service de messagerie !

a écrit dans le message de news:

On 7 jan, 16:00, wrote:





> Bonjour,
> je voudrai faire une macro qui permettrai de copier les cellules de
> A4 / A5 à AA4 / AA5 vers les cellules démarrant en AF4 / AF5
> copie en avancant vers la droite. mais avec la régle suivante:
> si la cellule de la ligne 5 contient un chiffre (exemple: 001, 002,
> 003 etc...) on copie les 2 cellules (exemple A4 & A5) vers AF4 & AF5
> tel quelles. par contre, si la cellule de la ligne 5 contient une
> plage de chiffres (exemple: 001-003 ou 001-007 etc...) (le début est
> toujours 001) la copie vers la droite doit être éclaté (c'est à dire
> une colonne pour chaque chiffres 001, 002, 003 etc... jusqu'a la
> limite finale.
> exemple de ma base initiale:
> DG CS RH CG (ligne 4)
> 002 001-006 001 001 (ligne 5)

> je voudrai la copie suivante plus loin à droite:
> DG CS CS CS CS CS CS RH CG (ligne4)
> 002 001 002 003 004 005 006 001 001 (ligne5)

> merci pour votre aide,

------------------------------------------------------------------------- --­------------------------------------------------------------
Bonjour,
ignorez ma question précédente, et trouvez ci-dessous une question
plus concise:
j'aimerai modifier la macro ci-dessous, pour que, au lieu du 2eme "="
il y a "contient au moins"
sachant que c.Offset(1, 0) contient "002"  et Sheets(onglet(1)).Range
("G" & i) contient "001 002 003 007"  je voudrai que dans ce cas, la
commande en dessous du "then" s'exécute. (sachant que le 1er "=" est
OK.

If  c = Sheets(onglet(1)).Range("F" & i) And c.Offset(1, 0) = Sheet s
(onglet(1)).Range("G" & i) Then
Sheets(onglet(1)).Range("M" & i) = c.Offset(-1, 0)
End If

en espérant que cela soit plus clair, merci pour votre aide.Marchepied- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



--------------------------------------------------------------------------- --------------------------------------------------------------
c'est exactement ça, et ça marche
merci