Modifier une macro

platypus

XLDnaute Nouveau
Bonjour,
J'utilise Excel 2003.
J'ai une base de données.
A la ligne 161, je rentre des valeurs ( une valeur par colonne B161=une date et C161 à AQ160=une valeur ).
En cliquant sur un bouton MISE A JOUR, je lance une macro qui va intégrer les valeurs de la ligne 161 dans la ligne 160 et décaler toutes les autres lignes vers le haut.( la ligne 160 vers 159 et ainsi de suite jusqu'à la ligne 89)
Question : est-il possible de modifier cette macro qui permettrait de faire remonter ces lignes jusqu'à la ligne 2 ?
J'utiliserai ainsi les lignes 160 à 2 au lieu de 160 à 89.
En espérant ne pas avoir été trop confus dans les explications
Je vous remercie par avance pour votre précieuse aide
Cdlt

Voici la macro ci-dessous


Sub MacroMISEAJOUR()
'
' MacroMISEAJOUR Macro
' Macro enregistrée le 08/02/2004 par Christian
'

'
Range("B161:AQ161").Select
Application.CutCopyMode = False
Selection.NumberFormat = "0.00"
Range("C161").Select
Selection.NumberFormat = "0.0000"
Range("A90:AQ161").Select
Range("A161").Activate
Selection.Copy
Range("A89").Select
ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
ActiveWindow.SmallScroll Down:=71
Range("B161:AQ161").Select
Selection.ClearContents
ActiveWorkbook.Save
End Sub
 

skoobi

XLDnaute Barbatruc
Re : Modifier une macro

Bonjour,
je suis pas sûr d'avoir tout compris vu que je vois pas trop le but de ta macro mais bon essaye ça:

Code:
For ligne = 161 To 74 Step -1
    Range(Cells(ligne, 2), Cells(ligne, 43)).Select
    Application.CutCopyMode = False
    Selection.NumberFormat = "0.00"
    Cells(ligne, 3).Select
    Selection.NumberFormat = "0.0000"
    Range(Cells(ligne - 71, 1), Cells(ligne, 43)).Select
    Cells(ligne, 1).Activate
    Selection.Copy
    Cells(ligne - 72, 1).Select
    ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
    IconFileName:=False
    ActiveWindow.SmallScroll Down:=71
    Range(Cells(ligne, 2), Cells(ligne, 43)).ClearContents
Next ligne
 ActiveWorkbook.Save
Edit: j'ai mis la sauvegarde à la fin de la boucle..... logique
 

platypus

XLDnaute Nouveau
Re : Modifier une macro

Merci skoobi pour ton aide
Ce que je recherche c'est que les lignes se decalent une par une de 161 à 2 lorsque je lance la macro. La ligne 161 prenant la place de 160, la 160 la place de 159 etc....jusqu'à la ligne 3 prenant la place de la ligne 2 et la 2 disparaissant. Actuellement cela s'arrete à 89.

J'ai donc remplacé ma macro par ta macro et lors de son lancement,toutes mes lignes 89 à 161 sont descendues pour occuper les lignes 2 à 71 laissant les lignes 71 à 160 sans valeurs.

J'ai donc repris ma macro
1: j'ai supprimé ces 2 lignes qui ne servaient à rien
Range("C161").Select
Selection.NumberFormat = "0.0000"
Fonctionnement macro OK

Ensuite
2: j'ai remplacé dans 2 lignes A89 par A2 ( en rouge )
3: j'ai remplacé 71 par 158 ( en bleu )

Là quand je lance la macro, ma ligne de valeurs inscrites en 161, ne descend pas en 160 et disparait complètement, les autres restant figés
Merci encore pour votre aide

Sub MacroMISEAJOUR()
'
' MacroMISEAJOUR Macro
' Macro enregistrée le 08/02/2004 par Christian
'

'
Range("B161:AQ161").Select
Application.CutCopyMode = False
Selection.NumberFormat = "0.00"
Range("A2:AQ161").Select
Range("A161").Activate
Selection.Copy
Range("A2").Select
ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
ActiveWindow.SmallScroll Down:=158
Range("B161:AQ161").Select
Selection.ClearContents
ActiveWorkbook.Save
End Sub
 

platypus

XLDnaute Nouveau
Re : Modifier une macro

Voici le fichier avec la base et la macro
Je pense effectivement que cela sera plus comprehensible
Merci pour votre aide
 

Pièces jointes

  • base.zip
    19 KB · Affichages: 99
  • base.zip
    19 KB · Affichages: 113
  • base.zip
    19 KB · Affichages: 148

Staple1600

XLDnaute Barbatruc
Re : Modifier une macro

Re



Macro à tester

Code:
Sub test()
Dim Prem as Long, Der as Long
'ici on identifie la première ligne vide 
'de la colonne B apres la cellule B2
Prem = [B2].End(xlDown).Row - 1
'ici on identifie la première ligne non vide 
'en partant de la fin de la colonne B
Der = [B65536].End(xlUp).Row
'ici on sélectionne et copie la ligne nouvellement saisie
'vers la ligne précédemment identifiée
Range(Cells(Der, 2), Cells(Der, 42)).Copy Destination:=Range("B" & Prem)
End Sub

A priori c'est bon (j'ai teste)

En attente de tes commentaires

edit: je joins ton fichier modifié si tu veux tester
 
Dernière édition:

platypus

XLDnaute Nouveau
Re : Modifier une macro

Merci Staple1600
J'ai donc remplacé ma macro par ta macro

1/ J'ai rentré mes valeurs dans la ligne 161
2/ J'ai lancé la macro
Résultat
a/ les valeurs sont restées sur la ligne 161 et ne sont pas montés dans la ligne 160
b/ j'ai retrouvé les valeurs de cette ligne 161 à la ligne 88

J'ai relancé la macro
Resultat
Idem
de plus je retrouve les valeurs de la ligne 161 ( qui n'a pas bouge ) sur les lignes 88 et 87
 

platypus

XLDnaute Nouveau
Re : Modifier une macro

J'ai testé le fichier modifié
La ligne 161 "toto" devrait monter à la ligne 160, la ligne 160 prendre la place de la ligne 159 et ainsi de suite. A chaque entrée d'une ligne de valeur en 161, lorsque je lance la macro, il y a remontée de toutes lignes jusqu 'à ligne 2. Actuellemnt avec ma macro cela s'arrete à 89
Encore merci pour votre aide
Cdlt
 

platypus

XLDnaute Nouveau
Re : Modifier une macro

Comme je l'ai dit, j'ai remplace 89 par 2 ( rouge ) et 71 par 158 ( bleu )
Mais quand je lance la macro
la ligne 161 disparait et rien ne bouge


Code:
Sub MacroMISEAJOUR()
'
' MacroMISEAJOUR Macro
' Macro enregistrée le 08/02/2004 par Christian
'

'
    Range("B161:AQ161").Select
    Application.CutCopyMode = False
    Selection.NumberFormat = "0.00"
    Range("[COLOR="Red"]A2[/COLOR]:AQ161").Select
    Range("A161").Activate
    Selection.Copy
    Range("[COLOR="red"]A2[/COLOR]").Select
    ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
        IconFileName:=False
    ActiveWindow.SmallScroll Down:=[COLOR="Blue"]158[/COLOR]
    Range("B161:AQ161").Select
    Selection.ClearContents
    ActiveWorkbook.Save
End Sub
 

platypus

XLDnaute Nouveau
Re : Modifier une macro

Bonjour à Tous,
Finalement, j'ai trouvé.
En fait au lieu de remplacer dans ma macro, A89 par A2 dans les 2 lignes, il fallait remplacer A89 par A3 dans la premiere formule et A89 par A2 dans la deuxieme formule.
Et celle fonctionne à merveille
Merci pour votre aide
Cdlt

:):)
 

Discussions similaires

Réponses
7
Affichages
367

Statistiques des forums

Discussions
312 296
Messages
2 086 962
Membres
103 409
dernier inscrit
Dave56