OVH Cloud OVH Cloud

insertion de ligne

5 réponses
Avatar
ptck
bonsoir,
j'ai déjà fait une demande mais à mon avis trop compliquée

voilà:
j'ai une feuille1, dans la cellule: ligne 5 colonne 2 le mot "belgique"
2 lignes plus bas en colonne A des articles.

Dans la feuille 2 j'ai des articles colonne A et des dépots colonne B (j'ai
d'autres colonnes et TCD sur la m^me feuille donc il faut choisir que les
colonne A & B jusqu'à la dernière cellule non vide.)

ex: 1ère ligne titre des colonne 2ligne des infos me servant pour autre
chose
3° ligne colonne A : réf1 colonne B: belgique
4° ligne colonne A : réf4 colonne B: france
5° ligne colonne A: réf5 colonne B: belgique
etc...

avec une macro, je voudrai insérer les articles de la feuille 2 qui manquent
dans la feuille 1
uniquement pour le dépot belgique.
Car il se peut que j'ai des articles d'un autre dépôt mais ne concernant pas
le dépôt belgique, il se peut aussi que j'ai des articles "belgique" à
different endroit de la colonne

j'ai différents dépôt je continuerai la macro pour intégréer les articles
les concernant, ets recopier les différentes formules dans les lignes
intégrées.


merci de votre aide

5 réponses

Avatar
michdenis
Bonjour Ptck,

Si j'ai saisi correctement l'organisation de tes données,

J'ai pris pour acquis que tu n'avais pas de doublons d'articles
pour la Belgique dans ta feuil2

Évidemment tu utilises une copie du fichier originel pour tester !

'---------------------------------------------
Sub Test()

Dim Aa As Long
Dim Rg1 As Range, Rg2 As Range
Dim Rg As Range, Sh As Worksheet

Set Sh = Worksheets.Add(before:=Sheets(1))
With Worksheets("Feuil2")
Set Rg = .Range("A4:B" & .Range("a65536").End(xlUp).Row)
With Rg
.AutoFilter field:=2, Criteria1:="Belgique"
End With
.Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy _
Sh.Range("a1")
Rg.AutoFilter
End With

With Worksheets("Feuil1")
Set Rg1 = .Range("A7:A" & .Range("A65536").End(xlUp).Row)
End With

Set Rg2 = Sh.Range("A1:A" & Sh.Range("A65536").End(xlUp).Row)

'a = Rg(1, 1).Row + Rg.Rows.Count - 1
For Each c In Rg2
If Not IsNumeric(Application.Match(c, Rg1, 0)) Then
a = a + 1
Rg1.Offset(a) = c
End If
Next
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True

Set Rg1 = Nothing: Set Rg = Nothing
Set Sh = Nothing: Set Rg2 = Nothing
End Sub
'---------------------------------------------


Salutations!




"ptck" a écrit dans le message de news: %
bonsoir,
j'ai déjà fait une demande mais à mon avis trop compliquée

voilà:
j'ai une feuille1, dans la cellule: ligne 5 colonne 2 le mot "belgique"
2 lignes plus bas en colonne A des articles.

Dans la feuille 2 j'ai des articles colonne A et des dépots colonne B (j'ai
d'autres colonnes et TCD sur la m^me feuille donc il faut choisir que les
colonne A & B jusqu'à la dernière cellule non vide.)

ex: 1ère ligne titre des colonne 2ligne des infos me servant pour autre
chose
3° ligne colonne A : réf1 colonne B: belgique
4° ligne colonne A : réf4 colonne B: france
5° ligne colonne A: réf5 colonne B: belgique
etc...

avec une macro, je voudrai insérer les articles de la feuille 2 qui manquent
dans la feuille 1
uniquement pour le dépot belgique.
Car il se peut que j'ai des articles d'un autre dépôt mais ne concernant pas
le dépôt belgique, il se peut aussi que j'ai des articles "belgique" à
different endroit de la colonne

j'ai différents dépôt je continuerai la macro pour intégréer les articles
les concernant, ets recopier les différentes formules dans les lignes
intégrées.


merci de votre aide
Avatar
ptck
merci
il n'y effectivement pas de doublons
j'ai testé la macro
message qui me dit que le variable a est non définie

je cherche.. je me lance dans les macro je regarde avec attention ...

ptck



"michdenis" a écrit dans le message de news:
%
Bonjour Ptck,

Si j'ai saisi correctement l'organisation de tes données,

J'ai pris pour acquis que tu n'avais pas de doublons d'articles
pour la Belgique dans ta feuil2

Évidemment tu utilises une copie du fichier originel pour tester !

'---------------------------------------------
Sub Test()

Dim Aa As Long
Dim Rg1 As Range, Rg2 As Range
Dim Rg As Range, Sh As Worksheet

Set Sh = Worksheets.Add(before:=Sheets(1))
With Worksheets("Feuil2")
Set Rg = .Range("A4:B" & .Range("a65536").End(xlUp).Row)
With Rg
.AutoFilter field:=2, Criteria1:="Belgique"
End With
.Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy _
Sh.Range("a1")
Rg.AutoFilter
End With

With Worksheets("Feuil1")
Set Rg1 = .Range("A7:A" & .Range("A65536").End(xlUp).Row)
End With

Set Rg2 = Sh.Range("A1:A" & Sh.Range("A65536").End(xlUp).Row)

'a = Rg(1, 1).Row + Rg.Rows.Count - 1
For Each c In Rg2
If Not IsNumeric(Application.Match(c, Rg1, 0)) Then
a = a + 1
Rg1.Offset(a) = c
End If
Next
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True

Set Rg1 = Nothing: Set Rg = Nothing
Set Sh = Nothing: Set Rg2 = Nothing
End Sub
'---------------------------------------------


Salutations!




"ptck" a écrit dans le message de news:
%
bonsoir,
j'ai déjà fait une demande mais à mon avis trop compliquée

voilà:
j'ai une feuille1, dans la cellule: ligne 5 colonne 2 le mot "belgique"
2 lignes plus bas en colonne A des articles.

Dans la feuille 2 j'ai des articles colonne A et des dépots colonne B
(j'ai
d'autres colonnes et TCD sur la m^me feuille donc il faut choisir que les
colonne A & B jusqu'à la dernière cellule non vide.)

ex: 1ère ligne titre des colonne 2ligne des infos me servant pour autre
chose
3° ligne colonne A : réf1 colonne B: belgique
4° ligne colonne A : réf4 colonne B: france
5° ligne colonne A: réf5 colonne B: belgique
etc...

avec une macro, je voudrai insérer les articles de la feuille 2 qui
manquent
dans la feuille 1
uniquement pour le dépot belgique.
Car il se peut que j'ai des articles d'un autre dépôt mais ne concernant
pas
le dépôt belgique, il se peut aussi que j'ai des articles "belgique" à
different endroit de la colonne

j'ai différents dépôt je continuerai la macro pour intégréer les articles
les concernant, ets recopier les différentes formules dans les lignes
intégrées.


merci de votre aide





Avatar
ptck
j'ai enlevé option explicite là çà marche

ptck


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

merci
il n'y effectivement pas de doublons
j'ai testé la macro
message qui me dit que le variable a est non définie

je cherche.. je me lance dans les macro je regarde avec attention ...

ptck



"michdenis" a écrit dans le message de news:
%
Bonjour Ptck,

Si j'ai saisi correctement l'organisation de tes données,

J'ai pris pour acquis que tu n'avais pas de doublons d'articles
pour la Belgique dans ta feuil2

Évidemment tu utilises une copie du fichier originel pour tester !

'---------------------------------------------
Sub Test()

Dim Aa As Long
Dim Rg1 As Range, Rg2 As Range
Dim Rg As Range, Sh As Worksheet

Set Sh = Worksheets.Add(before:=Sheets(1))
With Worksheets("Feuil2")
Set Rg = .Range("A4:B" & .Range("a65536").End(xlUp).Row)
With Rg
.AutoFilter field:=2, Criteria1:="Belgique"
End With
.Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy _
Sh.Range("a1")
Rg.AutoFilter
End With

With Worksheets("Feuil1")
Set Rg1 = .Range("A7:A" & .Range("A65536").End(xlUp).Row)
End With

Set Rg2 = Sh.Range("A1:A" & Sh.Range("A65536").End(xlUp).Row)

'a = Rg(1, 1).Row + Rg.Rows.Count - 1
For Each c In Rg2
If Not IsNumeric(Application.Match(c, Rg1, 0)) Then
a = a + 1
Rg1.Offset(a) = c
End If
Next
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True

Set Rg1 = Nothing: Set Rg = Nothing
Set Sh = Nothing: Set Rg2 = Nothing
End Sub
'---------------------------------------------


Salutations!




"ptck" a écrit dans le message de news:
%
bonsoir,
j'ai déjà fait une demande mais à mon avis trop compliquée

voilà:
j'ai une feuille1, dans la cellule: ligne 5 colonne 2 le mot "belgique"
2 lignes plus bas en colonne A des articles.

Dans la feuille 2 j'ai des articles colonne A et des dépots colonne B
(j'ai
d'autres colonnes et TCD sur la m^me feuille donc il faut choisir que les
colonne A & B jusqu'à la dernière cellule non vide.)

ex: 1ère ligne titre des colonne 2ligne des infos me servant pour autre
chose
3° ligne colonne A : réf1 colonne B: belgique
4° ligne colonne A : réf4 colonne B: france
5° ligne colonne A: réf5 colonne B: belgique
etc...

avec une macro, je voudrai insérer les articles de la feuille 2 qui
manquent
dans la feuille 1
uniquement pour le dépot belgique.
Car il se peut que j'ai des articles d'un autre dépôt mais ne concernant
pas
le dépôt belgique, il se peut aussi que j'ai des articles "belgique" à
different endroit de la colonne

j'ai différents dépôt je continuerai la macro pour intégréer les articles
les concernant, ets recopier les différentes formules dans les lignes
intégrées.


merci de votre aide









Avatar
michdenis
Bonjour Ptck,

Dans la déclaration des variables en début du code

Dim Aa As Long

Une erreur de frappe, on devrait lire

Dim A As Long

et si tu veux continuer à faire le ménage, tu peux effacer
cette ligne, elle ne sert à rien :
'a = Rg(1, 1).Row + Rg.Rows.Count - 1



Salutations!




"ptck" a écrit dans le message de news:
merci
il n'y effectivement pas de doublons
j'ai testé la macro
message qui me dit que le variable a est non définie

je cherche.. je me lance dans les macro je regarde avec attention ...

ptck



"michdenis" a écrit dans le message de news:
%
Bonjour Ptck,

Si j'ai saisi correctement l'organisation de tes données,

J'ai pris pour acquis que tu n'avais pas de doublons d'articles
pour la Belgique dans ta feuil2

Évidemment tu utilises une copie du fichier originel pour tester !

'---------------------------------------------
Sub Test()

Dim Aa As Long
Dim Rg1 As Range, Rg2 As Range
Dim Rg As Range, Sh As Worksheet

Set Sh = Worksheets.Add(before:=Sheets(1))
With Worksheets("Feuil2")
Set Rg = .Range("A4:B" & .Range("a65536").End(xlUp).Row)
With Rg
.AutoFilter field:=2, Criteria1:="Belgique"
End With
.Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy _
Sh.Range("a1")
Rg.AutoFilter
End With

With Worksheets("Feuil1")
Set Rg1 = .Range("A7:A" & .Range("A65536").End(xlUp).Row)
End With

Set Rg2 = Sh.Range("A1:A" & Sh.Range("A65536").End(xlUp).Row)

'a = Rg(1, 1).Row + Rg.Rows.Count - 1
For Each c In Rg2
If Not IsNumeric(Application.Match(c, Rg1, 0)) Then
a = a + 1
Rg1.Offset(a) = c
End If
Next
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True

Set Rg1 = Nothing: Set Rg = Nothing
Set Sh = Nothing: Set Rg2 = Nothing
End Sub
'---------------------------------------------


Salutations!




"ptck" a écrit dans le message de news:
%
bonsoir,
j'ai déjà fait une demande mais à mon avis trop compliquée

voilà:
j'ai une feuille1, dans la cellule: ligne 5 colonne 2 le mot "belgique"
2 lignes plus bas en colonne A des articles.

Dans la feuille 2 j'ai des articles colonne A et des dépots colonne B
(j'ai
d'autres colonnes et TCD sur la m^me feuille donc il faut choisir que les
colonne A & B jusqu'à la dernière cellule non vide.)

ex: 1ère ligne titre des colonne 2ligne des infos me servant pour autre
chose
3° ligne colonne A : réf1 colonne B: belgique
4° ligne colonne A : réf4 colonne B: france
5° ligne colonne A: réf5 colonne B: belgique
etc...

avec une macro, je voudrai insérer les articles de la feuille 2 qui
manquent
dans la feuille 1
uniquement pour le dépot belgique.
Car il se peut que j'ai des articles d'un autre dépôt mais ne concernant
pas
le dépôt belgique, il se peut aussi que j'ai des articles "belgique" à
different endroit de la colonne

j'ai différents dépôt je continuerai la macro pour intégréer les articles
les concernant, ets recopier les différentes formules dans les lignes
intégrées.


merci de votre aide





Avatar
ptck
je me suis trompé dans la feuille 2 les dépots sont en colonne A et non B


.Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy _
Sh.Range("b1") <==== j'ai mis b à la place du a

ai je raison
pctk

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

Bonjour Ptck,

Dans la déclaration des variables en début du code

Dim Aa As Long

Une erreur de frappe, on devrait lire

Dim A As Long

et si tu veux continuer à faire le ménage, tu peux effacer
cette ligne, elle ne sert à rien :
'a = Rg(1, 1).Row + Rg.Rows.Count - 1



Salutations!




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

merci
il n'y effectivement pas de doublons
j'ai testé la macro
message qui me dit que le variable a est non définie

je cherche.. je me lance dans les macro je regarde avec attention ...

ptck



"michdenis" a écrit dans le message de news:
%
Bonjour Ptck,

Si j'ai saisi correctement l'organisation de tes données,

J'ai pris pour acquis que tu n'avais pas de doublons d'articles
pour la Belgique dans ta feuil2

Évidemment tu utilises une copie du fichier originel pour tester !

'---------------------------------------------
Sub Test()

Dim Aa As Long
Dim Rg1 As Range, Rg2 As Range
Dim Rg As Range, Sh As Worksheet

Set Sh = Worksheets.Add(before:=Sheets(1))
With Worksheets("Feuil2")
Set Rg = .Range("A4:B" & .Range("a65536").End(xlUp).Row)
With Rg
.AutoFilter field:=2, Criteria1:="Belgique"
End With
.Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy _
Sh.Range("a1")
Rg.AutoFilter
End With

With Worksheets("Feuil1")
Set Rg1 = .Range("A7:A" & .Range("A65536").End(xlUp).Row)
End With

Set Rg2 = Sh.Range("A1:A" & Sh.Range("A65536").End(xlUp).Row)

'a = Rg(1, 1).Row + Rg.Rows.Count - 1
For Each c In Rg2
If Not IsNumeric(Application.Match(c, Rg1, 0)) Then
a = a + 1
Rg1.Offset(a) = c
End If
Next
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True

Set Rg1 = Nothing: Set Rg = Nothing
Set Sh = Nothing: Set Rg2 = Nothing
End Sub
'---------------------------------------------


Salutations!




"ptck" a écrit dans le message de news:
%
bonsoir,
j'ai déjà fait une demande mais à mon avis trop compliquée

voilà:
j'ai une feuille1, dans la cellule: ligne 5 colonne 2 le mot "belgique"
2 lignes plus bas en colonne A des articles.

Dans la feuille 2 j'ai des articles colonne A et des dépots colonne B
(j'ai
d'autres colonnes et TCD sur la m^me feuille donc il faut choisir que les
colonne A & B jusqu'à la dernière cellule non vide.)

ex: 1ère ligne titre des colonne 2ligne des infos me servant pour autre
chose
3° ligne colonne A : réf1 colonne B: belgique
4° ligne colonne A : réf4 colonne B: france
5° ligne colonne A: réf5 colonne B: belgique
etc...

avec une macro, je voudrai insérer les articles de la feuille 2 qui
manquent
dans la feuille 1
uniquement pour le dépot belgique.
Car il se peut que j'ai des articles d'un autre dépôt mais ne concernant
pas
le dépôt belgique, il se peut aussi que j'ai des articles "belgique" à
different endroit de la colonne

j'ai différents dépôt je continuerai la macro pour intégréer les articles
les concernant, ets recopier les différentes formules dans les lignes
intégrées.


merci de votre aide