• Initiateur de la discussion Initiateur de la discussion Askan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Askan

XLDnaute Nouveau
Bonjour le forum,

Je souhaite faire une macro que je vais utiliser quotidiennement. Les fonctionnalités identiques (d'un jour à l'autre) de cette macro sont par odre chronologique:
-Suppression d'une ligne
-Suppression de 2 premières colonnes à gauche
-Suppression des espaces avantg caractères
-colonne C à metttre au format "Nombre"
-colonne E supprimer les élements des cellules
-colonne I faire figurer le mois en cours au format "mmmm-aa"
-première ligne qui fut rajoutée le jour doit etre surlignee en couleur

Ce qui change d'un jour à l'autre :
-la première ligne change chaque jour,Jour J je peux etre en ligne 289 et Jour J+1 ligne 299 soit 10 lignes rajouter et à traiter en Jour J
-le nombre de lignes à traiter dépend d'un jour à l'autre. Il peut y en avoir 3 comme 10 ou plus...

Ma macro fonctionne mais que pour 7 lignes car le jour ou je l'ai faite je n'avais rajouter que 7 lignes au fichier. Comment modifier la macro afin qu'elle tienne compte du nombre de lignes rajouter le jour? Ci-dessous le Code VBA

ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Range("A1:B7").Select
Selection.Delete Shift:=xlToLeft
ActiveCell.Select
ActiveCell.FormulaR1C1 = " EST 19/06 W 3750"
Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveCell.Offset(0, 4).Range("A1:A7").Select
Selection.ClearContents
ActiveCell.Offset(-2, 4).Range("A1:A2").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:A9"), Type:= _
xlFillDefault
ActiveCell.Range("A1:A9").Select
ActiveCell.Offset(2, 0).Rows("1:1").EntireRow.Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub

Merci piur votre aide
 
Re : Macro suppression??

bonjour;
une premiere petite aide.
Pour les colonnes A et B pourquoi ne pas les supprimer entierement?
Sinon il va falloir definir comme variable la derniere ligne de ce tableau par repondre a ton besoin?
Juste je ne comprend pas si tu as une nouvelle base chaque jour mais dont le nombre de ligne varie ou si tu as un fichier ou s'ajoute les nouvelles lignes?
 
Re : Macro suppression??

Forum,

Je pense que l'astuce se situe au niveau de

ActiveCell.Range("A1:B7").Select

et

ActiveCell.FormulaR1C1 = " EST 19/06 W 3750"

En fait, quel est le code puor que la macro ne tienne pas compte uniquement des Cell A1 à B7 mais pour l'ensemble des lignes rajoutees..Il peut y en vaoir 15,20, 2 ou 50...
Autre point " EST 19/06 W 3750" peut aussi être autre chose. C'est le code produit de la première ligne mais peut etre totalement different comme "DJ ESS STV"...ma macro remplace la première cell par "EST 19/06 W 3750" à chaque fois....

SVP SVP..besoin d'aide
 
Re : Macro suppression??

Florent,

En fait il s'agit de la même base ou j'agrege de nouvelles données chaque jour!! Je ne peux donc pas supprimer la colonne A et B car leslignes du dessus ne doivent pas etre supprimer.
Je souhaite mettre au même format que le Jour J-1 une nouvelle "zone" dans laquelle de nouvelles données viennent completer la base. Je passe chque jour donc de 250 lignes à 262 lignes puis j+2 à 263 lignes puis j+3 à 271 lignes...ect...le nombres de lignes n'est pas identique chaque jour..
Merci
 
Re : Macro suppression??

je pense docn que tu devrais definir une variable du type
dim derlign as long

derlign = Range("C65536").End(xlUp).Row

et ensuite au lieu d'avoir range("A1:B7")
tu as range("cells(1,1), cells(derlign,2)")
apres le derlign tu peut mettre un +1 pour decaler d'une ligne.
Bon courage
 
Re : Macro suppression??

Florent,
Tu pourrais me dire ou inserer ces deux lignes de codes...
En ecrivant:

derlign = Range("C65536").End(xlUp).Row
Selection.Delete Shift:=xlUp
Range ("cells(1,1), cells(derlign,2)")

au lieu de

ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Range("A1:B7").Select

plus rien ne marche

Merci
 
Re : Macro suppression??

comme variable

dim derlign as long
derlign = Range("C65536").End(xlUp).Row
donc,
range("cells(1,1), cells(derlign,2)")

tuavais:
ActiveCell.Range("A1:B7").Select
Selection.Delete Shift:=xlToLeft

et tu as:
ActiveCell.range("cells(1,1), cells(derlign,2)").Select
Selection.Delete Shift:=xlToLeft

a la limite met de points d'arret sur ta macro pour tester et regarde si il definit bien derlign.

sinon ca plante? ca te met quoi?
 
Re : Macro suppression??

Florent,

Message d'erreur :
Erreur d'execution 1004
Erreur definie par l'appli ou l'objet

Ci-dessous le code:

Dim derlign As Long
derlign = Range("C65536").End(xlUp).Row
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Range("cells(1,1), cells(derlign,2)").Select
Selection.Delete Shift:=xlToLeft

Tu as une explication stp?
Merci
 
Re : Macro suppression??

désolé,
pas de ""

ActiveCell.Range(cells(1,1), cells(derlign,2)).Select

quand tu vas sortir de la ligne il va mettre les majuscule.
ActiveCell.Range("cells(1,1), cells(derlign,2)").Select
Range(Cells(1, 1), Cells(derlign, 2)).Select

perso je ne mets pas le activecell
 
Re : Macro suppression??

Merci Florent..mais dernier détail!!

Cette partie me pose problème!

ActiveCell.Select
ActiveCell.FormulaR1C1 = " EST 19/06 W 3750"
Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Je souhaite faire en sorte que la macro supprime les espaces avant les caractères. EST 19/06 W 3750 mais il se trouve que le code produit n'estpas le même à chaque fois?! Comment écrire que la macro "doit supprimer les espaces avant les caracteres de la première colonne"???
Ce code remplace tt le tps la première par EST 19/06..." Si je marque

ActiveCell.FormulaR1C1 = " machin truc muche" ça remplace par "machin truc muche" qq soit les caractères...
Merci
 
Re : Macro suppression??

Si j'ai bien tout compris ce que tu veux faire...
je part du principe que ton texte est en G9 jusqu'à .....

Sub test()

Dim derlign As Long
derlign = Range("C65536").End(xlUp).Row
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
Range(Cells(1, 1), Cells(derlign, 2)).Select
Selection.Delete Shift:=xlToLeft

derlign = Range("G65536").End(xlUp).Row
Dim X As Range
Range(Cells(9, 7), Cells(derlign + 1, 7)).Select
Selection.Find(What:=" EST", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True).Activate
Selection.Replace What:=" EST", Replacement:="EST", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True

End Sub

en esperant t'avoir aider.
Je dois y aller bonne soirée à tous!
 
Re : Macro suppression??

Merci pour ton aide tout fonctionne!!!...je te le donne au cas ou tu aimerais t'en inspirer ..la macro suit les étapes citées dans mon premier message...

Dim derlign As Long
derlign = Range("C65536").End(xlUp).Row

ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Range(Cells(1, 1), Cells(derlign, 2)).Select
Selection.Delete Shift:=xlToLeft
ActiveCell.Select
Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveCell.Offset(0, 4).Range("A1:A6000").Select
Selection.ClearContents
ActiveCell.Offset(-2, 4).Range("A1:A2").Select
ActiveCell.Offset(2, 0).Rows("1:1").EntireRow.Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub


Merci encore
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
163
Réponses
5
Affichages
477
Réponses
4
Affichages
576
Réponses
2
Affichages
539
Réponses
5
Affichages
497
Réponses
3
Affichages
532
Retour