copie de ligne d'une feuille vers une autre feuille

sev31130

XLDnaute Impliqué
Bonjour

Je ne connais rien en VBA ou modules, si votre attention est attiré par mon message voici ce que je voudrais faire en matricielle
J ai 4 feuilles dénommée « P- T-O et generale »

Je saisie indifféremment sur une de mes feuilles « P-T ou O » 7 colonnes, sachant que la saisie de ces colonnes mettent à jour 20 colonnes qui ont chacune une formule
Et je voudrais recopier a chaque saisie sur l’une ou l’autre des 3 feuilles les 7 colonnes de la derniére ligne saisie
De la feuille saisie à la feuille générale

Exemple :
Feuille P
15-sept 2 1 11 9 13 P
17-sept 10 9 7 12 11 P
21-sept 7 10 11 13 12 P

Feuille T
13-sept 10 5 11 12 2 T
14-sept 6 13 3 12 10 T
16-sept 7 8 9 11 3 T
18-sept 2 4 9 13 14 T
19-sept 3 8 4 9 15 T
20-sept 6 7 8 10 12 T
22-sept 1 17 6 2 4 T

Feuille O
12-sept 3 11 5 2 1 O

Feuille generale
12-sept 3 11 5 2 1 O
13-sept 10 5 11 12 2 T
14-sept 6 13 3 12 10 T
15-sept 2 1 11 9 13 P
16-sept 7 8 9 11 3 T
17-sept 10 9 7 12 11 P
18-sept 2 4 9 13 14 T
19-sept 3 8 4 9 15 T
20-sept 6 7 8 10 12 T
21-sept 7 10 11 13 12 P
22-sept 1 17 6 2 4 T

Par avance merci


je joins un petit fichier pour mieux m expliquer

encore merci
 

Pièces jointes

  • fichier_essai_a_travailler.xls
    17.5 KB · Affichages: 37
Dernière édition:

sev31130

XLDnaute Impliqué
Re : copie de ligne d'une feuille vers une autre feuille

re bonjour,

personne ne veut essayer de m'aider...j essaie de le faire seul depuis ce matin je ne trouve pas la fonction qui puisse définir
ce dont je voudrais faire

merci si quelqu'un veut m'accorder un moment de son temps pour résoudre mon probléme

merci
 

job75

XLDnaute Barbatruc
Re : copie de ligne d'une feuille vers une autre feuille

Bonjour sev31130,

Par formule c'est sûrement possible mais bien compliqué.

En VBA c'est très facile avec cette macro dans le code de la feuille "generale" :

Code:
Private Sub Worksheet_Activate()
Dim a, i As Byte, h As Long
Application.ScreenUpdating = False
Rows("2:" & Rows.Count).Delete 'RAZ
a = Array("P", "T", "O")
For i = 0 To UBound(a)
  h = Sheets(a(i)).Range("A" & Rows.Count).End(xlUp).Row
  If h > 1 Then Sheets(a(i)).Rows("2:" & h).Copy _
    Range("A" & Rows.Count).End(xlUp)(2)
Next
Me.UsedRange.Sort [A1], xlAscending, Header:=xlYes 'tri sur dates
End Sub
La macro s'exécute quand on active la feuille.

J'ai ajouté des en-têtes de colonnes.

Fichier joint.

A+
 

Pièces jointes

  • fichier_essai_a_travailler(1).xls
    41.5 KB · Affichages: 51

sev31130

XLDnaute Impliqué
Re : copie de ligne d'une feuille vers une autre feuille

re ami JOB75

que de tracas je te donne

voila j'ai mis de l'ordre dans mes idées et je te présente le projet que je voudrais sur les deux fichiers que tu trouveras, en dehors de la modif que je te demande sur le fichier2 si le reste est trop long on laisse comme c est et ca iras très bien, disons que 'est pour un simple confort de saisie ce que je te demande et pour alleger les classuers enfin tu verras les explications en feuilles "commentaire" ouvrir le fichier2 en premier
cordialement
YC

fichier 2 =http://www.cjoint.com/confirm.php?cjoint=CIyqeZlAaYq
fichier 1 =http://www.cjoint.com/confirm.php?cjoint=CIyqgg2PYtP

MILLE MERCI
 

job75

XLDnaute Barbatruc
Re : copie de ligne d'une feuille vers une autre feuille

Re,

Tu as vraiment mis de l'ordre dans tes idées ?

Car je ne comprends toujours rien à tes explications.

Je pense qu'il faut reprendre tout ton projet et ta manière de voir les choses.

A+
 

sev31130

XLDnaute Impliqué
Re : copie de ligne d'une feuille vers une autre feuille

Re,

Tu as vraiment mis de l'ordre dans tes idées ?

Car je ne comprends toujours rien à tes explications.

Je pense qu'il faut reprendre tout ton projet et ta manière de voir les choses.

A+
bonsoir

Voila tu trouveras le fichier

(c) CJoint.com, 2012

je suis navré si mes explications sont mauvaises, j'espère que tu comprendras ce que j'ai ecris sur la page commentaires si tu peux me faire ce changement que je te demande ensuite nous n'irons pas plus loin

Par avance merci mille fois

CORDIALEMENT
YVES
 

job75

XLDnaute Barbatruc
Re : copie de ligne d'une feuille vers une autre feuille

Bonjour sev31130,

Teste le fichier joint avec la macro modifiée dans ThisWorkbook :

Code:
Sub Copie(F As Worksheet, Sh As Worksheet)
If Not Sh.Name Like F.Name & "?" Then Exit Sub
Dim lettre As String, lig As Long
lettre = Right(Sh.Name, 1)
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des liaisons...
Application.Calculation = xlCalculationManual 'calcul sur ordre
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.[F4:R4] = Sh.[T1:AF1].Offset(Application.Match(lettre, Sh.[AG2:AG4], 0)).Value
lig = Sh.UsedRange.Row + Sh.UsedRange.Rows.Count - 1
If lig > 4 Then 'début en ligne 5
  With Sh.Range(Sh.Cells(5, 5), Sh.Cells(lig, 5))
    Me.Names.Add "matrice", .Value 'nom défini par une matrice
    .FormulaArray = "=LN(matrice=""" & lettre & """)"
    .Value = .Value
    .EntireRow.Sort .Cells(1), Header:=xlNo 'tri pour accélérer la suppression
    On Error Resume Next
    .SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
    .Value = lettre
    Me.Names("matrice").Delete
  End With
End If
Application.Calculation = xlCalculationAutomatic 'calcul automatique
Sh.UsedRange.Value = Sh.UsedRange.Value 'supprime les formules
End Sub
Maintenant les formules sont supprimées seulement à la fin : les résultats sont donc les mêmes qu'on les supprime ou qu'on les conserve.

Le calcul sur ordre évite le recalcul des formules du classeur pendant le filtrage et le tri.

A+
 

Pièces jointes

  • stats 2013(1).zip
    605.5 KB · Affichages: 42
  • stats 2013(1).zip
    605.5 KB · Affichages: 36
  • stats 2013(1).zip
    605.5 KB · Affichages: 40

sev31130

XLDnaute Impliqué
Re : copie de ligne d'une feuille vers une autre feuille

bonjour


Après essai rapide, je pense que ta formule est bonne,et fonctionne, mais s'il te plait soit tu libère les colonnes a partir de la colonne AH soit tu libère les 4 premières lignes de la copie intégrale des feuilles pour laisser de la place
pour d'autres renseignements que j'ai besoin comme la plage que j ai sur la feuille ecart PP plage AH1- AS4

Merci

si trop d'ennuis pour le faire laisse tomber


Mille merci
 

sev31130

XLDnaute Impliqué
Re : copie de ligne d'une feuille vers une autre feuille

Re,



Là ce n'est vraiment pas compliqué, il suffit d'ajouter une ligne de code :

Code:
'-----
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.Range("AH1", Sh.Columns(Sh.Columns.Count)).Delete
'-----
Mais je n'en vois guère l'intérêt...

A+

Il est vrai que je me dois d te donner une explication.
En préambule je fais partie des gens qui croient en la loi des chiffres et des séries, d'autre part tout record ou statistique est fait pour être battu pour les uns et "cassé" pour les autres.
Le but du jeu de tous ces calculs est de savoir quand un Numéro atteint ou dépasse des valeurs annuelles et encore plus sur le temps (environ 20 ans)
donc comme tu peux le voir sur la feuille PP la plage AH1:AS4 il y a des chiffres
la ligne 2 représente les valeurs maxi depuis environ 20 ans
la ligne 3 représente les valeurs sur l'année
la ligne 4 reprends la plus grande valeur de la ligne 2 ou de la ligne 3
que je compare avec la dernière ligne des colonnes F à R de la feuille PP
alors tu vas me dire pourquoi ne pas faire une ligne 5 qui se copierais en dessous
OUI mais je n'avais prévu et comme la LIGNE 5 c'est la ligne qui est dans toutes tes formules
donc on vas pas tout changer j ai une vue d ensemble en figeant les volets

Malheureusement j'ai copié la ligne , alors ca ne copie pas ,mais je ne peux toujours pas écrire sur la fameuse plage, si j'écris quand je reviens c'est éffacé.. attention aussi si on mets cette ligne , la feuille P se copie dans les feuilles P T et O donc la derniere lignhe se copie dans les 3 feuilles sans tenir compte de son origine P - T ou O

Tu te souviens tu avais figé la plage T1:AF4 fais pareil avec l autre plage AH1:AS4 et tu te casse plus la tete

copie de la formule qui est sur mon "thiiswokbook"

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Copie Sheets("ecart P"), Sh
Copie Sheets("ecart G"), Sh
End Sub


Sub Copie(F As Worksheet, Sh As Worksheet)
If Not Sh.Name Like F.Name & "?" Then Exit Sub
Dim lettre As String, lig As Long
lettre = Right(Sh.Name, 1)
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des liaisons...
Application.Calculation = xlCalculationManual 'calcul sur ordre
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.[F4:R4] = Sh.[T1:AF1].Offset(Application.Match(lettre, Sh.[AG2:AG4], 0)).Value
lig = Sh.UsedRange.Row + Sh.UsedRange.Rows.Count - 1
If lig > 4 Then 'début en ligne 5
With Sh.Range(Sh.Cells(5, 5), Sh.Cells(lig, 5))
Me.Names.Add "matrice", .Value 'nom défini par une matrice
.FormulaArray = "=LN(matrice=""" & lettre & """)"
.Value = .Value
.EntireRow.Sort .Cells(1), Header:=xlNo 'tri pour accélérer la suppression
On Error Resume Next
.SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
.Value = lettre
Me.Names("matrice").Delete
Application.Calculation = xlCalculationAutomatic 'calcul automatique
Sh.UsedRange.Value = Sh.UsedRange.Value 'supprime les formules
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.Range("AH1", Sh.Columns(Sh.Columns.Count)).Delete
End Sub
End With

Est ce que je peux me permettre de t'envoyer mon fichier comme je l'ai conçus dans ses nouvelles normes en t'expliquant clairement ce qui serait pour moi l'idéal, si toutefois c'est faisable...et si TU ARRIVES à faire ce que je te demande tu peux le FIGER je ne demanderais PLUS RIEN

Amicalement
Cordialement
CY

(PS je pars demain de Toulouse pour Avignon et je ne suis pas de retour avant lundi fin de matinée )
si tu peux voir pour libérer les plages c'est bien sinon on attendras Lundi
TU ES SUPER GENTIL MERCI
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : copie de ligne d'une feuille vers une autre feuille

Re,

...et si TU ARRIVES à faire ce que je te demande tu peux le FIGER je ne demanderais PLUS RIEN

Hum ça fait combien de fois que tu dis ça :rolleyes:

Alors FIGEONS, fichier (2).

A+
 

Pièces jointes

  • stats 2013(2).zip
    605.6 KB · Affichages: 18
  • stats 2013(2).zip
    605.6 KB · Affichages: 21
  • stats 2013(2).zip
    605.6 KB · Affichages: 19

sev31130

XLDnaute Impliqué
Re : copie de ligne d'une feuille vers une autre feuille

Re,



Hum ça fait combien de fois que tu dis ça :rolleyes:

Alors FIGEONS, fichier (2).

A+

Bonsoir

comme tu as marqué "A+" je ne peux te quitter comme cela (rires)

je te joins un fichier qui est l'aboutissement d'une mauvaise analyse ou l'on se dit au départ "je vais demander que l'on m'aide pour faire ci ou la" et puis on se rend compte que si l'on fais cela on as plus etc....
enfin tout ceci pour te dire que la j'ai atteins TOUT ce qui est permis d'avoir comme statistiques et écarts
mais tu liras mon commentaire et tu verras ce que tu en pense

Confirmation de cration

Amicalement

Yves

(on pourrait le mettre sur le site si des fois des amateurs de courses hippiques et plus particulererement des personnes comme moi qui aimes stats surtout et RIEN QUE DANS LA COURSE DU QUINTE NATIONAL , que cela profite)
 

sev31130

XLDnaute Impliqué
Re : copie de ligne d'une feuille vers une autre feuille

bonsoir


toi qui passes et qui lis ces messages, sache que le gars qui a bien voulu m'accorder beaucoup de temps afin d'avoir
un classeur complet, avec une grande connaissance, une grande gentillesse, et qui a su me faire apprendre la valeur de son travail, toi qui liras le fichier dis toi bien qu'une grande partie de ce fichier a été faites par JOB75
(pour les formules et les macros)

Je dis MERCI MONSIEUR JOB je comprends ta lassitude, je m'en excuses, je comprends ton RAS LE BOL j'en suis la cause....et même si tu abandonnes comme tu le dis...tu m'as beaucoup donné
JE TE DIS MILLE FOIS MERCI POUR TOUT CE QUE TU AS FAIS POUR MOI

Amicalement

Yves

(PS peux peu m'écrire sur ma boite mail stp yves.cefa@sfr.fr)
 

Discussions similaires

Statistiques des forums

Discussions
314 611
Messages
2 111 144
Membres
111 051
dernier inscrit
MANUREVALAND