Copie automatique de certains champs d'une ligne

G

Gerard

Guest
Bonjour à tous et à toutes, Bonjour forum !!

Je me permets de soumettre une difficulté qui se pose à moi, débutant Excel et en grande difficulté (et aussi en stage, malheureusement
:huh:

Je remercie d'avance quiconque qui pourrait m'aider !!


Voilà, je souhaiterais copier automatiquement certaines champs d'une ligne afin de les incorporer directement dans une autre feuille.

Ainsi, pour exemple, Je souhaite copier automatiquement les champs A16, B16 et J16 d'une feuille 1 vers la feuille 2 respectivement aux champs B16 (pour A16, feuille1), A16 (pour B16, feuillle1) et C16 (pour J16, feuille1)
CECI POUR L'ENSEMBLE DES LIGNES DE LA FEUILLE 1 !!

Si qq'un à une idée ca serait gentil merci!!

Bonne continuation à votre site ! [file name=essais_20050713111823.zip size=13871]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essais_20050713111823.zip[/file]
 

Pièces jointes

  • essais_20050713111823.zip
    13.5 KB · Affichages: 34
T

tifou

Guest
Salut gerard !!

Désolé de ne pouvoir t'aider car moi aussi je suis débutant, par contre ton exemple serait susceptible de m'interesser si quelqu'un c'est comment faire ca (à l aide d'une macro !)

tchao!
 

le Fnake

XLDnaute Junior
Re:Copie automatique de certains champs d'une lign

Bonjour Gerar, tifou, le forum

Etant ya pas si lgtps dans le meme cas que vous, je vous propose ces quelques solutions (en espérant avoir bien interprété le pbm) :

1°/ quand tu dis 'copier automatiquement', tu sous-entends copier dès qu'une valeur est modifiée dans la feuille, c'est ca ? Dans ce cas, tu peux essayer (à insérer comme macro de la feuille1) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
' copie les valeurs à chaque modification de la feuille1
Dim i As Integer
i = Target.Row
If i > 15 Then
'en supposant qu'on ne prend pas en compte les modifications intervenues sur les lignes 1 à 15
    Worksheets('feuille2').Range('A' & i) = Range('feuille1!B' & i).Value
    Worksheets('feuille2').Range('B' & i) = Range('feuille1!A' & i).Value
    Worksheets('feuille2').Range('C' & i) = Range('feuille1!J' & i).Value
End If
End Sub

Par contre j'ai pas l'habitude d'utiliser ce genre de truc, donc ca pourrait etre génant en fait. A voir

2°/ Dans le même style, si tu comptes copier tes données une fois pour toute et pas à chaque modification, une macro à créer dans un module :
Code:
Sub Copie_Ligne()
'copie tout au moment du lancement de la macro
Dim i As Integer
For i = 16 To Range('feuille1!A16').End(xlDown).Row
    Range('feuille2!A' & i) = Range('feuille1!B' & i).Value
    Range('feuille2!B' & i) = Range('feuille1!A' & i).Value
    Range('feuille2!C' & i) = Range('feuille1!J' & i).Value    
Next i
End Sub

3°/ en insérant des formules sur la feuille2 puis en étendant la formule sur toutes les lignes : par exemple, en B16 tu mets =''&feuille1!A16, ce qui te permet d'avoir une cellule vide et non un 0 si la cellule A16 est vide.

Voila, j'espere que ca pourra t'aider.
Bon courage.
 

ZZR09

XLDnaute Occasionnel
Bonjour,

Si tu ne veux pas passer par des macros, Excel te permet de répondre à ce genre de problème en saisissant un e formule telle que

dans la feuil2, cellule B16 :

=SI(Feuil1!A16='';'';Feuil1!A16)

Si la cellule A16 de la feuille 1 est vide - alors -> ne rien afficher

- sinon -> = cellule A16

idem pour toutes les cellules de la feuille 2

Enfin, recopie vers le bas!

C'est sans VBA.

Cordialement
 

le Fnake

XLDnaute Junior
Re:Copie automatique de certains champs d'une lign

ZZR09 écrit:
Bonjour,

Si tu ne veux pas passer par des macros, Excel te permet de répondre à ce genre de problème en saisissant un e formule telle que

dans la feuil2, cellule B16 :

=SI(Feuil1!A16='';'';Feuil1!A16)

Si la cellule A16 de la feuille 1 est vide - alors -> ne rien afficher

- sinon -> = cellule A16

idem pour toutes les cellules de la feuille 2

Enfin, recopie vers le bas!

C'est sans VBA.

Cordialement

exactement, ca correspond en gros à ma 3e solution. La solution avec le 'SI' est la plus naturelle, c'est celle que j'aurais donné si je n'avais pas juste découvert celle que j'ai proposé plus haut :lol: Bon après, je sais pas trop ce qu'elle vaut, si ce n'est qu'elle ne considère qu'une seule fois la valeur de la cellule, alors qu'avec le SI, il fait d'abord le test puis copie la valeur ;) Enfin le gain en temps doit approchement le millième de seconde, ce peut sembler négligeable :p
 

ZZR09

XLDnaute Occasionnel
Re:Copie automatique de certains champs d'une lign

Effectivement, je ne connaissais pas la solution =''&...
J'avais l'habitude de faire avec SI, sans me poser plus de questions.
J'essaierai à l'occasion!
C'est bien Excel ... Il y a toujours plusieurs solutions à un problème.
 

ZZR09

XLDnaute Occasionnel
Re:Copie automatique de certains champs d'une lign

Si la première colone de la 1ère feuille (celle qui est fusionnée) est toujours la même, tu peux utiliser les $ pour bloquer la référence de la cellule A16 : A$16

Et pour éviter que cela n'apparaisse partout, tester les cellules vides ailleurs dans le tableau récapitulatif, exemple :

Feuille2, en B16
=SI(A16='';'';Feuill1!A$16)
puis recopie vers le bas

Si l'intitulé change touts les trois lignes tu peux faire une suite du genre deux fois = cellule du haut précédente puis une fois celle qui est trois rangs plus haut etc.

Sinon, si c'est variable, il faudra certainement passer par une macro qui teste la fusion des cellules avant de copier leur contenu.

Quel sera le cas?

A+
 
G

gerard

Guest
Re:Copie automatique de certains champs d'une lign

Bonjour forum !!

Je me permets de soumettre mon probleme sachant qu'un problème survient ds la copie des cellules fusionnées !!

Merci d'avance !

Gauthier
 
G

Gerard

Guest
Re:Copie automatique de certains champs d'une lign

Re bonjour !!

Quelqu'un sait-il comment créer une macro semblable à celle au-dessus mais qui integrerait les lignes ou l'on retrouve des cellules fusionnées ?

Merci d'avance, je suis vraiment en galère !

gerard :pinch:
 

Discussions similaires

Réponses
24
Affichages
502

Statistiques des forums

Discussions
312 493
Messages
2 088 949
Membres
103 989
dernier inscrit
jralonso