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

copier le contenu d'une feuille dans une autre si condition remplie

4 réponses
Avatar
gabriel
Bonjour à tous,

Je cherche à faire une macro qui quand on tape dans une des cellules de la
colonne A de la feuille1 le mot "COD"
me rajoute automatiquement dans les lignes à côté du mot "COD" le contenu de
la feuille COD (via un copier / coller avec transposition).
Je ne sais pas faire ça en VBA.

ex:

dans la feuille "COD" j'ai :
nom1
nom2
nom3


(sur la feuille1 en A7 par exemple je tape COD; il rajoute le reste)

A B C D E
7 COD Nom1 Nom2 Nom3 etc...

Je cherche à faire ça pour des raisons de publipostage.

Si quelqu'un trouve un bout de code me permettant de faire ça ce serai
sympathique...

merci
Gaby

4 réponses

Avatar
Hervé
Bonsoir Gabriel,
Regarde si cela convient, à mettre dans le module de ta feuille (celle où
sera tapé le mot COD) :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range
If Not Intersect(Target, [A:A]) Is Nothing Then
If Target.Text = "COD" Then
With Worksheets("COD")
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With
Me.Range(Target.Offset(0, 1), _
Target.Offset(0, Plage.Count)) = _
Application.WorksheetFunction.Transpose(Plage)
End If
End If
Set Plage = Nothing
End Sub

Hervé.

"gabriel" a écrit dans le message news:
#
Bonjour à tous,

Je cherche à faire une macro qui quand on tape dans une des cellules de la
colonne A de la feuille1 le mot "COD"
me rajoute automatiquement dans les lignes à côté du mot "COD" le contenu
de

la feuille COD (via un copier / coller avec transposition).
Je ne sais pas faire ça en VBA.

ex:

dans la feuille "COD" j'ai :
nom1
nom2
nom3


(sur la feuille1 en A7 par exemple je tape COD; il rajoute le reste)

A B C D E
7 COD Nom1 Nom2 Nom3 etc...

Je cherche à faire ça pour des raisons de publipostage.

Si quelqu'un trouve un bout de code me permettant de faire ça ce serai
sympathique...

merci
Gaby




Avatar
anonymousA
bonjour,

vérifier quand même , sauf si c'est absoluemnt impossible,qu'il n'y ait
pas plus de 255 occurrences dans la plage de la feuille COD. C'est le
seul point faible de la proc , au demeurant bien faite , qui t'a été
communiquée par Hervé.

A+


Bonjour à tous,

Je cherche à faire une macro qui quand on tape dans une des cellules de la
colonne A de la feuille1 le mot "COD"
me rajoute automatiquement dans les lignes à côté du mot "COD" le contenu de
la feuille COD (via un copier / coller avec transposition).
Je ne sais pas faire ça en VBA.

ex:

dans la feuille "COD" j'ai :
nom1
nom2
nom3


(sur la feuille1 en A7 par exemple je tape COD; il rajoute le reste)

A B C D E
7 COD Nom1 Nom2 Nom3 etc...

Je cherche à faire ça pour des raisons de publipostage.

Si quelqu'un trouve un bout de code me permettant de faire ça ce serai
sympathique...

merci
Gaby




Avatar
gabriel
Merci Hervé,
Elle fonctionne effectivement bien !
Petite question subsidiaire : si à la place de "COD" on veut mettre une
variable qui prend la valeur de la cellule active, on s'y prend comment ?

En tout cas merci, ça m'aide !!!
Gaby


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

Bonsoir Gabriel,
Regarde si cela convient, à mettre dans le module de ta feuille (celle où
sera tapé le mot COD) :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range
If Not Intersect(Target, [A:A]) Is Nothing Then
If Target.Text = "COD" Then
With Worksheets("COD")
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With
Me.Range(Target.Offset(0, 1), _
Target.Offset(0, Plage.Count)) = _
Application.WorksheetFunction.Transpose(Plage)
End If
End If
Set Plage = Nothing
End Sub

Hervé.

"gabriel" a écrit dans le message news:
#
Bonjour à tous,

Je cherche à faire une macro qui quand on tape dans une des cellules de
la
colonne A de la feuille1 le mot "COD"
me rajoute automatiquement dans les lignes à côté du mot "COD" le contenu
de

la feuille COD (via un copier / coller avec transposition).
Je ne sais pas faire ça en VBA.

ex:

dans la feuille "COD" j'ai :
nom1
nom2
nom3


(sur la feuille1 en A7 par exemple je tape COD; il rajoute le reste)

A B C D E
7 COD Nom1 Nom2 Nom3 etc...

Je cherche à faire ça pour des raisons de publipostage.

Si quelqu'un trouve un bout de code me permettant de faire ça ce serai
sympathique...

merci
Gaby








Avatar
isabelle
bonjour Gaby,

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range
Dim MaVar
MaVar = "COD"
If Not Intersect(Target, [A:A]) Is Nothing Then
If Target.Text = MaVar Then
With Worksheets(MaVar)
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With
Me.Range(Target.Offset(0, 1), _
Target.Offset(0, Plage.Count)) = _
Application.WorksheetFunction.Transpose(Plage)
End If
End If
Set Plage = Nothing
End Sub

isabelle


Merci Hervé,
Elle fonctionne effectivement bien !
Petite question subsidiaire : si à la place de "COD" on veut mettre une
variable qui prend la valeur de la cellule active, on s'y prend comment ?

En tout cas merci, ça m'aide !!!
Gaby


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


Bonsoir Gabriel,
Regarde si cela convient, à mettre dans le module de ta feuille (celle où
sera tapé le mot COD) :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range
If Not Intersect(Target, [A:A]) Is Nothing Then
If Target.Text = "COD" Then
With Worksheets("COD")
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With
Me.Range(Target.Offset(0, 1), _
Target.Offset(0, Plage.Count)) = _
Application.WorksheetFunction.Transpose(Plage)
End If
End If
Set Plage = Nothing
End Sub

Hervé.

"gabriel" a écrit dans le message news:
#

Bonjour à tous,

Je cherche à faire une macro qui quand on tape dans une des cellules de
la
colonne A de la feuille1 le mot "COD"
me rajoute automatiquement dans les lignes à côté du mot "COD" le contenu


de

la feuille COD (via un copier / coller avec transposition).
Je ne sais pas faire ça en VBA.

ex:

dans la feuille "COD" j'ai :
nom1
nom2
nom3


(sur la feuille1 en A7 par exemple je tape COD; il rajoute le reste)

A B C D E
7 COD Nom1 Nom2 Nom3 etc...

Je cherche à faire ça pour des raisons de publipostage.

Si quelqu'un trouve un bout de code me permettant de faire ça ce serai
sympathique...

merci
Gaby