OVH Cloud OVH Cloud

supprimer et coller dans une autre feuille

13 réponses
Avatar
JB
Bonjour a tous,

J'ai le Pb suivant à résoudre :

A B
1- 100 toto
2- 101 lulu
3- 101 tata
4- 102
5- 103 pepe
6- 103
7- 104
8- 104

je dois supprimer et coller dans une autre feuille uniquement les
lignes suivantes :

4,7,8

parce que vide en B et pour la valeur existante en A
ex : Il ne faut surtout pas supprimer la ligne 6 parce que pour une
valeur existante en A il y a une valeur non vide en B (ligne 5)

Merci de votre aide

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net

10 réponses

1 2
Avatar
Daniel
Bonjour.
J'ai posté une réponse à ce même post le 26/04 à 21:20. Est-ce que ma
réponse ne satisfait pas ?
Cordialement.
Daniel
"JB" a écrit dans le message de news:

Bonjour a tous,

J'ai le Pb suivant à résoudre :

A B
1- 100 toto
2- 101 lulu
3- 101 tata
4- 102
5- 103 pepe
6- 103
7- 104
8- 104

je dois supprimer et coller dans une autre feuille uniquement les lignes
suivantes :

4,7,8

parce que vide en B et pour la valeur existante en A
ex : Il ne faut surtout pas supprimer la ligne 6 parce que pour une valeur
existante en A il y a une valeur non vide en B (ligne 5)

Merci de votre aide

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net



Avatar
JB
Bonsoir,
Je n'ai jamais eu de réponse !! c'est pour cela que j'ai remis ce post
Merci de le remettre

Daniel avait soumis l'idée :
Bonjour.
J'ai posté une réponse à ce même post le 26/04 à 21:20. Est-ce que ma réponse
ne satisfait pas ?
Cordialement.
Daniel
"JB" a écrit dans le message de news:

Bonjour a tous,

J'ai le Pb suivant à résoudre :

A B
1- 100 toto
2- 101 lulu
3- 101 tata
4- 102
5- 103 pepe
6- 103
7- 104
8- 104

je dois supprimer et coller dans une autre feuille uniquement les lignes
suivantes :

4,7,8

parce que vide en B et pour la valeur existante en A
ex : Il ne faut surtout pas supprimer la ligne 6 parce que pour une valeur
existante en A il y a une valeur non vide en B (ligne 5)

Merci de votre aide

-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net


Avatar
MichDenis
Bonjour JB,

Voici la réponse que Daniel te faisait parvenir sur ce forum :


Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Range("a1", Range("a65536").End(xlUp)).Select
Ligne = 1
For Each c In Selection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then
Sheets("feuil2").Range("A" & Ligne) = c.Value
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value
Ligne = Ligne + 1
End If
If c.Offset(0, 1).Value <> "" Then
Res1 = c.Value
End If
Next c
End Sub



Salutations!



"JB" a écrit dans le message de news:
Bonsoir,
Je n'ai jamais eu de réponse !! c'est pour cela que j'ai remis ce post
Merci de le remettre

Daniel avait soumis l'idée :
Bonjour.
J'ai posté une réponse à ce même post le 26/04 à 21:20. Est-ce que ma réponse
ne satisfait pas ?
Cordialement.
Daniel
"JB" a écrit dans le message de news:

Bonjour a tous,

J'ai le Pb suivant à résoudre :

A B
1- 100 toto
2- 101 lulu
3- 101 tata
4- 102
5- 103 pepe
6- 103
7- 104
8- 104

je dois supprimer et coller dans une autre feuille uniquement les lignes
suivantes :

4,7,8

parce que vide en B et pour la valeur existante en A
ex : Il ne faut surtout pas supprimer la ligne 6 parce que pour une valeur
existante en A il y a une valeur non vide en B (ligne 5)

Merci de votre aide

-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net


Avatar
JB
Merci
Je vais tester cela

Bonne soirée

Bonjour JB,

Voici la réponse que Daniel te faisait parvenir sur ce forum :


Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Range("a1", Range("a65536").End(xlUp)).Select
Ligne = 1
For Each c In Selection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then
Sheets("feuil2").Range("A" & Ligne) = c.Value
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value
Ligne = Ligne + 1
End If
If c.Offset(0, 1).Value <> "" Then
Res1 = c.Value
End If
Next c
End Sub



Salutations!



"JB" a écrit dans le message de news:
Bonsoir,
Je n'ai jamais eu de réponse !! c'est pour cela que j'ai remis ce post
Merci de le remettre

Daniel avait soumis l'idée :
Bonjour.
J'ai posté une réponse à ce même post le 26/04 à 21:20. Est-ce que ma
réponse ne satisfait pas ?
Cordialement.
Daniel
"JB" a écrit dans le message de news:

Bonjour a tous,

J'ai le Pb suivant à résoudre :

A B
1- 100 toto
2- 101 lulu
3- 101 tata
4- 102
5- 103 pepe
6- 103
7- 104
8- 104

je dois supprimer et coller dans une autre feuille uniquement les lignes
suivantes :

4,7,8

parce que vide en B et pour la valeur existante en A
ex : Il ne faut surtout pas supprimer la ligne 6 parce que pour une valeur
existante en A il y a une valeur non vide en B (ligne 5)

Merci de votre aide

-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net



Avatar
Daniel
Scuse et merci à MichDenis, je regardais le foot à la télé.
Cordialement.
Daniel
"MichDenis" a écrit dans le message de news:

Bonjour JB,

Voici la réponse que Daniel te faisait parvenir sur ce forum :


Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Range("a1", Range("a65536").End(xlUp)).Select
Ligne = 1
For Each c In Selection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then
Sheets("feuil2").Range("A" & Ligne) = c.Value
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value
Ligne = Ligne + 1
End If
If c.Offset(0, 1).Value <> "" Then
Res1 = c.Value
End If
Next c
End Sub



Salutations!



"JB" a écrit dans le message de news:

Bonsoir,
Je n'ai jamais eu de réponse !! c'est pour cela que j'ai remis ce post
Merci de le remettre

Daniel avait soumis l'idée :
Bonjour.
J'ai posté une réponse à ce même post le 26/04 à 21:20. Est-ce que ma
réponse
ne satisfait pas ?
Cordialement.
Daniel
"JB" a écrit dans le message de news:

Bonjour a tous,

J'ai le Pb suivant à résoudre :

A B
1- 100 toto
2- 101 lulu
3- 101 tata
4- 102
5- 103 pepe
6- 103
7- 104
8- 104

je dois supprimer et coller dans une autre feuille uniquement les lignes
suivantes :

4,7,8

parce que vide en B et pour la valeur existante en A
ex : Il ne faut surtout pas supprimer la ligne 6 parce que pour une
valeur
existante en A il y a une valeur non vide en B (ligne 5)

Merci de votre aide

-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net






Avatar
JB
Bjr,
J'ai teste
cela marche mais ne supprime pas les lignes concernées de la feuille 1
Merci encore pour votre aide.

Daniel avait soumis l'idée :
Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Range("a1", Range("a65536").End(xlUp)).Select
Ligne = 1
For Each c In Selection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then
Sheets("feuil2").Range("A" & Ligne) = c.Value
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value
Ligne = Ligne + 1
End If
If c.Offset(0, 1).Value <> "" Then
Res1 = c.Value
End If
Next c
End Sub



--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net


Avatar
Daniel
Bonjour.
A vrai dire, j'avais pas remarqué le "supprimer". Tu vas t'en sortir ou tu
veux que je t'envoie le code modifié ?
Joyeux premier mai.
Daniel
"JB" a écrit dans le message de news:

Bjr,
J'ai teste
cela marche mais ne supprime pas les lignes concernées de la feuille 1
Merci encore pour votre aide.

Daniel avait soumis l'idée :
Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Range("a1", Range("a65536").End(xlUp)).Select
Ligne = 1
For Each c In Selection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then
Sheets("feuil2").Range("A" & Ligne) = c.Value
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value
Ligne = Ligne + 1
End If
If c.Offset(0, 1).Value <> "" Then
Res1 = c.Value
End If
Next c
End Sub



--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net





Avatar
JB
Bonsoir,
J'aimerai bien le code modifé et avec en plus sur la feuille 2 on
retrouve la totalité de la ligne concernée (valeur en c,d etcc.)

Grand trés grand merci d'avance
S'il est possible d'ajouter des commentaires cela me permettra de
comprendre mieux la macro
et ainsi de moins déranger les pros

Merci

Daniel a formulé la demande :
Bonjour.
A vrai dire, j'avais pas remarqué le "supprimer". Tu vas t'en sortir ou tu
veux que je t'envoie le code modifié ?
Joyeux premier mai.
Daniel
"JB" a écrit dans le message de news:

Bjr,
J'ai teste
cela marche mais ne supprime pas les lignes concernées de la feuille 1
Merci encore pour votre aide.

Daniel avait soumis l'idée :
Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Range("a1", Range("a65536").End(xlUp)).Select
Ligne = 1
For Each c In Selection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then
Sheets("feuil2").Range("A" & Ligne) = c.Value
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value
Ligne = Ligne + 1
End If
If c.Offset(0, 1).Value <> "" Then
Res1 = c.Value
End If
Next c
End Sub



-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




Avatar
Daniel
Bonsoir.
Comme il est tard et que ça me faisait bouger plus de choses, je me suis
contenté d'ajouter un module de suppression après les copies et des
commentaires.

Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Dim Plage As Range
Range("a1", Range("a65536").End(xlUp)).Select 'sélection de la plage à
parcourir
'Copies
Ligne = 1 'numéro de la ligne à écrire sur la feuille "Feuil2"
For Each c In Selection 'boucle pour chaque cellule de la sélection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then 'Res1 contient
la valeur de la cellule de la colonne A de la ligne précédente
Sheets("feuil2").Range("A" & Ligne) = c.Value 'copie de la
cellule de la colonne A
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value
'copie de la cellule de la colonne B
'====== 'ici recopier la ligne précédente pour chaque cellule à recopier
'====== Ligne = Ligne + 1 'incrémentation du numéro de ligne à écrire
End If
If c.Offset(0, 1).Value <> "" Then 'renseignement de Res1
Res1 = c.Value
End If
Next c
'Suppressions
Range("A1").Select
Sheets("Feuil2").Activate 'sélection de la feuille "Feuil2"
Set Plage = Range("a1", Range("a65536").End(xlUp)) 'sélection de la
plage à parcourir
For Each c In Plage 'boucle pour chaque cellule de la sélection
Sheets("Feuil1").Activate 'sélection de la feuille "Feuil2"
Do Until c.Value = ActiveCell.Value And ActiveCell.Offset(0, 1) = ""
'recherche de la ligne à supprimer
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.EntireRow.Delete 'suppression de la ligne
Next c
End Sub

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

Bonsoir,
J'aimerai bien le code modifé et avec en plus sur la feuille 2 on
retrouve la totalité de la ligne concernée (valeur en c,d etcc.)

Grand trés grand merci d'avance
S'il est possible d'ajouter des commentaires cela me permettra de
comprendre mieux la macro
et ainsi de moins déranger les pros

Merci

Daniel a formulé la demande :
Bonjour.
A vrai dire, j'avais pas remarqué le "supprimer". Tu vas t'en sortir ou
tu veux que je t'envoie le code modifié ?
Joyeux premier mai.
Daniel
"JB" a écrit dans le message de news:

Bjr,
J'ai teste
cela marche mais ne supprime pas les lignes concernées de la feuille 1
Merci encore pour votre aide.

Daniel avait soumis l'idée :
Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Range("a1", Range("a65536").End(xlUp)).Select
Ligne = 1
For Each c In Selection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then
Sheets("feuil2").Range("A" & Ligne) = c.Value
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value
Ligne = Ligne + 1
End If
If c.Offset(0, 1).Value <> "" Then
Res1 = c.Value
End If
Next c
End Sub



-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net







Avatar
JB
Milles merci
Je vais tester cela
C'est super sympa pour les commentaires
Bonne journée

Daniel a utilisé son clavier pour écrire :
Bonsoir.
Comme il est tard et que ça me faisait bouger plus de choses, je me suis
contenté d'ajouter un module de suppression après les copies et des
commentaires.

Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Dim Plage As Range
Range("a1", Range("a65536").End(xlUp)).Select 'sélection de la plage à
parcourir
'Copies
Ligne = 1 'numéro de la ligne à écrire sur la feuille "Feuil2"
For Each c In Selection 'boucle pour chaque cellule de la sélection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then 'Res1 contient
la valeur de la cellule de la colonne A de la ligne précédente
Sheets("feuil2").Range("A" & Ligne) = c.Value 'copie de la
cellule de la colonne A
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value 'copie
de la cellule de la colonne B
'====== > 'ici recopier la ligne précédente pour chaque cellule à recopier
'====== > Ligne = Ligne + 1 'incrémentation du numéro de ligne à écrire
End If
If c.Offset(0, 1).Value <> "" Then 'renseignement de Res1
Res1 = c.Value
End If
Next c
'Suppressions
Range("A1").Select
Sheets("Feuil2").Activate 'sélection de la feuille "Feuil2"
Set Plage = Range("a1", Range("a65536").End(xlUp)) 'sélection de la plage
à parcourir
For Each c In Plage 'boucle pour chaque cellule de la sélection
Sheets("Feuil1").Activate 'sélection de la feuille "Feuil2"
Do Until c.Value = ActiveCell.Value And ActiveCell.Offset(0, 1) = ""
'recherche de la ligne à supprimer
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.EntireRow.Delete 'suppression de la ligne
Next c
End Sub

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

Bonsoir,
J'aimerai bien le code modifé et avec en plus sur la feuille 2 on retrouve
la totalité de la ligne concernée (valeur en c,d etcc.)

Grand trés grand merci d'avance
S'il est possible d'ajouter des commentaires cela me permettra de
comprendre mieux la macro
et ainsi de moins déranger les pros

Merci

Daniel a formulé la demande :
Bonjour.
A vrai dire, j'avais pas remarqué le "supprimer". Tu vas t'en sortir ou tu
veux que je t'envoie le code modifié ?
Joyeux premier mai.
Daniel
"JB" a écrit dans le message de news:

Bjr,
J'ai teste
cela marche mais ne supprime pas les lignes concernées de la feuille 1
Merci encore pour votre aide.

Daniel avait soumis l'idée :
Sub Test()
Dim Ligne As Integer, c As Range, Res1 As String
Range("a1", Range("a65536").End(xlUp)).Select
Ligne = 1
For Each c In Selection
If c.Offset(0, 1).Value = "" And c.Value <> Res1 Then
Sheets("feuil2").Range("A" & Ligne) = c.Value
Sheets("feuil2").Range("B" & Ligne) = c.Offset(0, 1).Value
Ligne = Ligne + 1
End If
If c.Offset(0, 1).Value <> "" Then
Res1 = c.Value
End If
Next c
End Sub



-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net






1 2