XL 2013 copies de ligne et marquage sous condition

sev31130

XLDnaute Impliqué
bonjour

Comme je ne suis pas des plus doués, je me permets de vous envoyer un fichier
avec quelques explications.
Je ne sais pas si ce que je vous demande est faisable, vous verrez.
Si par un effet de bonté vous pouviez aussi me faire la MFC ce serait super car la encore je ne connais rien

Par avance merci

Cordialement
 

Pièces jointes

  • ESSAIPRESSE.xls
    143 KB · Affichages: 82
  • ESSAIPRESSE.xls
    143 KB · Affichages: 86

sev31130

XLDnaute Impliqué
Re : copies de ligne et marquage sous condition

voila que je voudrais faire

•le tableau à remplir est celui en colonnes "K:R" de la feuille 'pronos'
•il faut prendre en compte la date inscrite en A2 de cette même feuille
•le MAX à considérer (dans les feuilles '01', '02',...) des colonnes AO, AQ, AS,... est le max des valeurs de la ligne 6 à la ligne de même date que A2 de la feuille 'pronos'
•si dans ces colonnes la valeur de la cellule correspondant à la date A2 de la feuille 'pronos' est égale à la valeur du MAX, alors il faut renvoyer la valeur correspondante du tableau situé en colonne D:K

tu trouveras a cette adresse le fichier avec dans les cellules une formule matricielle, mais ca ne marche pas..
Je crois que j'ai fais une bétise, je crois que j'ai ouvert deux fois le sujet...j'en suis navré
J'aimerais que tu regardes toi qui connais bien le fichier

Par avance Merci
 

sev31130

XLDnaute Impliqué
Re : copies de ligne et marquage sous condition

bonjour,


je reviens vers toi, pour déjà en premier te remercier de out ce que tu as fait, et pour te dire que j'ai tester la fonction que tu m'avais fais"vider", elle fonctionne et vide bien tout, mais car il y a un mai tu as gardé en mémoire la ligne 6, or ce que j'aurais besoin, c'est que les données de la ligne 6 lors de la "vidange" soit la copie conforme de la dernière ligne du mois en cours, afin de repartir le mois suivant avec les "report" de la dernière ligne du mois précédent

EXEMPLE en AI33 on a 3 ,AI3 une fois vidangé devient 3 en AJ33 on 15 , une fois vidangé AJ33 devient 15 etc...

je pense que tu as compris, en gros je veux reporter les écarts de fin de mois en report de début du mois suivant .
Par avance merci

Yves
 

tototiti2008

XLDnaute Barbatruc
Re : copies de ligne et marquage sous condition

Bonjour sev,

or ce que j'aurais besoin, c'est que les données de la ligne 6 lors de la "vidange" soit la copie conforme de la dernière ligne du mois en cours, afin de repartir le mois suivant avec les "report" de la dernière ligne du mois précédent

EXEMPLE en AI33 on a 3 ,AI3 une fois vidangé devient 3 en AJ33 on 15 , une fois vidangé AJ33 devient 15 etc...

je pense que tu as compris, en gros je veux reporter les écarts de fin de mois en report de début du mois suivant .

A priori c'est ce que vider devait faire

Code:
Sub Vider()
Dim i As Long, NF As String, Dte As Date, Lig As Long
    For i = 1 To 100 'Boucle jusqu'à la feuille n°100
    NF = Format(i, "00") 'Nom de feuille sur 2 positions
    If FeuilExist(NF) Then 'Si la feuille existe
    With Sheets(NF) 'Avec cette feuille
        Dte = DateSerial(Year(.Range("C7").Value), Month(.Range("C7").Value) + 1, 0) 'On construit la date du dernier jour du mois de C7 
        Lig = Application.Match(CLng(Dte), .Range("C1:C100"), 0) 'On repère la ligne du dernier jour
        .Range("AH" & Lig & ":BC" & Lig).Copy 'On copie les données de AH à BC de cette ligne
        .Range("AH6:BC6").PasteSpecial Paste:=xlPasteValues 'On les colle en valeur en ligne 6
        .Range("D7:K37").ClearContents 'On efface les données de D7 à K37
    End With
    End If
    Next i 'Fin boucle
End Sub
 

sev31130

XLDnaute Impliqué
Re : copies de ligne et marquage sous condition

je testerais ce que tu viens de me donner demain soir

voila ce que tu m'avais fait mettre

Sub Vider()
Dim i As Long, NF As String
For i = 1 To 100
NF = Format(i, "00")
If FeuilExist(NF) Then Sheets(NF).Range("D7:K37").ClearContents
Next i
End Sub

j'ai mis à la place ce que tu viens de m'envoyer

MERCI
 

sev31130

XLDnaute Impliqué
Re : copies de ligne et marquage sous condition

bonsoir ,


je viens d'essayer et encore une fois je constate

* que la vidange se fait bien
* qu'il n'y a aucune copie qui se fait vue que la ligne 7 gardes les mêmes valeurs qu'elle avait avant la vidange
je te joins copie u fichier avant et après vidange tu verras comme cela
Dans l'énoncé du collage de la ligne je me suis trompé je te dis ligne 7 alors que c'est ligne 6 (sur la feuille du fichier que je viens de t'envoyer quand je te dis de recopier, c'est ligne 6 et pas en ligne 7)

Si c'est trop ennuyeux laisses te tracasses pas le mourron

merci quand même

Après avoir mis ce message j'ai recopié ce que tu m'as enoyé en dernier pour "vidanger" ca fais drôles, on voit qu'il travailles quand je cliques executer, ca fait comme des éclairs, je pense que c est les différentes phases e calcul, mais la c est bon il recopie bien la dernière ligne en ligne 6 ...si cela peut t'aider a revoir ...merci
 

Pièces jointes

  • vidange.xlsx
    45.9 KB · Affichages: 53
  • vidange.xlsx
    45.9 KB · Affichages: 58
Dernière édition:

sev31130

XLDnaute Impliqué
Re : copies de ligne et marquage sous condition

bonjour,

j'ai ouvert ton fichier et les copies de lignes ne sont pas bonnes
vois sur le fichier que je te joins les bonnes valeurs qui devraient
être afficher en ligne 6
sur ton exemple c'est la ligne 6 de septembre qui se recopie sur la ligne 6 de octobre
or je voudrais que la dernière ligne du mois en cours (pas le même numéro de ligne en fonction du nombre de jours dans le mois) se recopie en ligne 6 du mois suivant

merci

je viens de regarder plus précisément, et j'ai recopier dans le module, la version que j'ai trouve sur ton dernier envoi et ca marche nickel
donc on cherche pas plus loin.
par contre je trouve cela sur mon module, je ne me rappelle pas que tu me l 'ai fais copier ..
ca sert à quoi ?
Function FeuilExist(Nomfeuil As String) As Boolean
Dim z As String
FeuilExist = True
On Error GoTo err1
z = ThisWorkbook.Worksheets(Nomfeuil).Name
On Error GoTo 0
Exit Function
err1:
On Error GoTo 0
FeuilExist = False
End Function

en fait voici ci dessous la copie complète de ma feuille de macro
Sub Export()
Dim Plage As Range, Dte As Date, i As Long, NF As String, Ligne As Long
With ThisWorkbook.Worksheets("pronos_journalier")
Dte = CDate(.Range("Dte").Value)
Set Plage = .Range("Debut").CurrentRegion
For i = 1 To Plage.Rows.Count
NF = Format(Plage.Range("A" & i).Value, "00")
If FeuilExist(NF) Then
Ligne = Application.Match(CLng(Dte), ThisWorkbook.Worksheets(NF).Range("C1:C10000"), 0)
ThisWorkbook.Worksheets(NF).Range("D" & Ligne & ":K" & Ligne).Value = .Range("D" & i + .Range("Debut").Row - 1 & ":K" & i + .Range("Debut").Row - 1).Value
End If
Next i
End With
End Sub

Function FeuilExist(Nomfeuil As String) As Boolean
Dim z As String
FeuilExist = True
On Error GoTo err1
z = ThisWorkbook.Worksheets(Nomfeuil).Name
On Error GoTo 0
Exit Function
err1:
On Error GoTo 0
FeuilExist = False
End Function
Sub Vider()
Dim i As Long, NF As String, Dte As Date, Lig As Long
For i = 1 To 100 'Boucle jusqu'à la feuille n°100
NF = Format(i, "00") 'Nom de feuille sur 2 positions
If FeuilExist(NF) Then 'Si la feuille existe
With Sheets(NF) 'Avec cette feuille
Dte = DateSerial(Year(.Range("C7").Value), Month(.Range("C7").Value) + 1, 0) 'On construit la date du dernier jour du mois de C7
Lig = Application.Match(CLng(Dte), .Range("C1:C100"), 0) 'On repère la ligne du dernier jour
.Range("AH" & Lig & ":BC" & Lig).Copy 'On copie les données de AH à BC de cette ligne
.Range("AH6:BC6").PasteSpecial Paste:=xlPasteValues 'On les colle en valeur en ligne 6
.Range("D7:K37").ClearContents 'On efface les données de D7 à K37
End With
End If
Next i 'Fin boucle
End Sub


De toute évidence tout marche bien maintenant

juste pour information de ma part


mille merci
 

Pièces jointes

  • vidange (7).xlsm
    60.5 KB · Affichages: 56
  • vidange (7).xlsm
    60.5 KB · Affichages: 54
Dernière édition:

sev31130

XLDnaute Impliqué
Re : copies de ligne et marquage sous condition

bonjour


comme tu le verras sur mon exemple et si possible
tenir compte le 1er jour du mois de la ligne du report AO6:BC6 en "01"
pour que le tableau dans "pronos"soit renseigner

Est ce que la date joue...et est ce que demain je les verrais
si tel est le cas alors ne touchons rien et excuse mon intervention
merci

yves
 

Pièces jointes

  • vidange (7).xlsm
    51 KB · Affichages: 67
  • vidange (7).xlsm
    51 KB · Affichages: 66

Discussions similaires

Réponses
1
Affichages
210

Statistiques des forums

Discussions
312 299
Messages
2 086 987
Membres
103 419
dernier inscrit
mk29