Brin d'aide SVP

wmichelange

XLDnaute Occasionnel
Bonjour le forum

1 petit coup de main SVP

Je voudrais une macro qui :
a) identifie les dernières Cellules ( ligneBJ à IP..300lignes) de tableaux contenant des formules... soit comme : Selection.End(xlDown).Select ? de BJ à IP
b) Puis qui recopie incrémentée cette dernière (ligne BJ à IP+1) dans la ligne au dessous avec toutes les formules

Je sais faire :


"Sub RecopieIncrementee()
Set PlageSource = Worksheets("Feuille1").Range("BJ302:IP302")
' La plage BJ1:IP1 contient des formules de calculs jusqu'à la ligne 302.
Set PlageARemplir = Worksheets("Feuille1").Range("BJ302:IP303")
PlageSource.AutoFill Destination:=PlageARemplir
End Sub"

Mais Il faut ouvrir la macro et changer la dernière ligne 303 en 304 car la mise à jour se fait tous les 2 jours

Peut-on automatiser?

C' est le "Range" qui me chiffonne "Range (End(xlDown)" ????? ou Range +1
Mes essais ne fonctionnent pas avec (End(xlDown)

merci du coup de main

Cordialement

wmichelange
 

wmichelange

XLDnaute Occasionnel
Re : Brin d'aide SVP

Bonjour le forum
Salut Pierrot93 et merci de ta réponse

cette modif :
Sub Ligneder()
With Worksheets("Feuille1")
Set PlageARemplir = .Range("BJ302:IP" & .Range("IP65536").End(xlUp).Row)
End With

End Sub
Ne fonctionne pas au point de ne pas lancer le débogage.
Celle-ci fonctionne
Sub RecopieIncrementee()
Set PlageSource = Worksheets("Feuille1").Range("BJ302:IP302")
Set PlageARemplir = Worksheets("Feuille1").Range("BJ302:IP303")
PlageSource.AutoFill Destination:=PlageARemplir
End Sub"
Mais elle n'est pas automatique
Il lui manque un petit rien
a+
Merci
Wmichelange
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Brin d'aide SVP

Bonjour Wmicelange, Pierrot, bonjour le forum,

Pourquoi deux codes ? Essaie comme ça :

Code:
Sub RecopieIncrementee()
Dim PlageARemplir As Range
Dim PlageSource As Range
 
With Worksheets("Feuille1")
    Set PlageSource = .Range("BJ302:IP" & .Range("IP65536").End(xlUp).Row)    
    Set PlageARemplir = .Range("BJ302:IP" & .Range("IP65536").End(xlUp).Row + 1)
End With
PlageSource.AutoFill Destination:=PlageARemplir
End Sub
 
Dernière édition:

wmichelange

XLDnaute Occasionnel
Re : Brin d'aide SVP

Bonjour le forum

Bonjour Pierrot et Robert
Merci de vos réponses

De la colonne A à I ... il y a dates en A et des reports de chiffres jusqu'à I, à partir de BJ, il y a des formules peu importe formules ou chiffres numériques.
Le tout est de recopier vers le bas de telle col à telle col.

En manuel je mets à jour mes 61 colonnes ( peux pas faire autrement) et puis je selectionne la ligne de BJ à IP ou IV (bientôt) et je dis recopie vers le bas ....Impeccable! et ça tous les 2 jours.
Ben y a des jours... au "radar" tu oublies une colonne...etc
J'en suis à la ligne 303 aujourd'hui et tous les 2 jours 1 lignes de plus.
Le pourquoi de ma macro mais il faut que je l'ouvre pour mettre 303 puis 304.
Car tous les 2 jours il y aura une ligne de plus.

Pierrot ta modif ne va pas et celle de Robert non plus.. je pense que c'est "row" qui ne va pas. Tout ce passe entre BJ et IP pout l'instant
Cette macro doit reconnaître la dernière ligne du tableau donc BJ à IP puis la recopier vers le bas.

Si vous ne voyez pas je ferais un extrait de 5 lignes à joindre en fichier.

merci de votre aide
a+
wmichelange
 

Pierrot93

XLDnaute Barbatruc
Re : Brin d'aide SVP

Bonjour wmichelange, Robert

Peut être en modifiant la dernière ligne du code de Robert comme suit :

Code:
PlageSource.AutoFill Destination:=PlageARemplir[B][COLOR="Red"], Type:=xlFillSeries[/COLOR][/B]

Bonne journée
@+
 

wmichelange

XLDnaute Occasionnel
Re : Brin d'aide SVP

Bonjour le forum

Salut Pierrot et Robert
Pierrot merci de ta réponse et de ton temps

Le changement :
PlageSource.AutoFill Destination:=PlageARemplir, Type:=xlFillSeriesNe convient pas car débogage sur cette ligne.

Comment-est-il possible que cette macro ne puisse pas être modifiée pour trouver la dernière ligne de BJ à XY et faire une copie incrémentée d'une ligne à chaque mise à jour de A1 à BI 300 et plus ???
Tous les essais sont infructueux! donc C'est impossible???
Excel a trouvé sa limite?
Prenons une ligne qui n'existe pas :
A400 à BI400 mise à jour =>BJ400 à IV400 calcule automatique pour mise à jour de cette ligne en fonction des valeurs entrées dans A à BI.
Recopier vers le bas => 400 et non incrémentée en 401 les dates idem etc
donc problème.
ma macro d'origine est bien sauf qu'il faut changer 400 en 401.
Le but de la macro est de simplifier le boulot.
Bon eh bien c'est impossible
Merci à tous
a+
wmichelange
 

Pierrot93

XLDnaute Barbatruc
Re : Brin d'aide SVP

Re

essaye ainsi, sur le fichier que tu nous a transmis :

Code:
Sub RecopieIncrementee()
Dim PlageARemplir As Range
Dim PlageSource As Range
With Worksheets("Feuil1")
    Set PlageSource = .Range("BJ2:FK2")
    Set PlageARemplir = .Range("BJ2:FK" & .Range("FK65536").End(xlUp).Row)
End With
PlageSource.AutoFill Destination:=PlageARemplir, Type:=xlFillSeries
End Sub

@+
 

wmichelange

XLDnaute Occasionnel
Re : Brin d'aide SVP

Re à tous

Pierrot merci de tes efforts.

Je suis débutant en macro
Mais alors là j'ai appris quelque chose
J'installe ta macro modifiée dans les 2 fichiers
ça fonctionne 1 seule fois et puis débogage et dans les 2 fichiers.
debogage :plageSource.AutoFill Destination:=PlageARemplir, Type:=xlFillSeries

Peux-tu m'expliquer?

Merci de ton temps
a+
wmichelange
 

Pierrot93

XLDnaute Barbatruc
Re : Brin d'aide SVP

Re,

je viens peut être seulement de percuter... pas sûr... essaye peut être ce code, incrémente d'une ligne la dernière ligne de la plage BJ:FK :

Code:
Option Explicit
Sub RecopieIncrementee()
Dim PlageARemplir As Range
Dim PlageSource As Range
With Worksheets("Feuil1")
    Set PlageSource = .Range("BJ" & .Range("BJ65536").End(xlUp).Row & ":FK" & .Range("FK65536").End(xlUp).Row)
    Set PlageARemplir = PlageSource.Resize(2)
End With
PlageSource.AutoFill Destination:=PlageARemplir, Type:=xlFillSeries
End Sub

@+
 

wmichelange

XLDnaute Occasionnel
Re : Brin d'aide SVP

Bonjour le forum

Bonjour Pierrot93

Merci de ta réponse qui fonctionne très bien et merci de ton temps

Excel a des possibilités insoupçonnées.
Version définitive :

Option Explicit
Sub RecopieIncrementee()
Dim PlageARemplir As Range
Dim PlageSource As Range
With Worksheets("Feuil1")
Set PlageSource = .Range("BJ" & .Range("BJ65536").End(xlUp).Row & ":IP" & .Range("IP65536").End(xlUp).Row)
Set PlageARemplir = PlageSource.Resize(2)
End With
PlageSource.AutoFill Destination:=PlageARemplir, Type:=xlFillSeries
End Sub


A+ le forum
wmichelange
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote