Décaler ligne total apres insertion de lignes par macro

papapaul

XLDnaute Impliqué
:) Salut Forum, comme d'hab' je patauge :confused:

J'ai 1 feuille avec en bas 1 ligne Total.
J'ai une macro qui ajoute successivement des lignes
les unes en dessous des autres.
Comment faire pour descendre la ligne Total ici au départ (ligne 10)
quand au fur et à mesure des copies successives j'arrive
sur sa ligne.

J'essaye d'expliquer sur la feuille et dans la Macro1 du fichier joint.

Merci d'avance et Bonne journée.;)
 

Pièces jointes

  • essai_inser_ligne_v2.xls
    29 KB · Affichages: 125
C

Compte Supprimé 979

Guest
Re : Décaler ligne total apres insertion de lignes par macro

Salut papapaul,

dans ton code il suffit de rajouter une variable qui récupère la dernière ligne ou se trouve ton total et de faire la comparaison

Code:
With Sheets("Feuil1")
lginser = .Range("a65536").End(xlUp).Row + 1
[COLOR=blue]lgtotal = .Range("c65536").End(xlUp).Row
[/COLOR]' SI on arrive sur la ligne -2 de total
[COLOR=blue]If lgtotal - 1 = lginser Then
  Rows(lginser).Insert shift:=xlDown
End If
[/COLOR].Cells(lginser, 1) = Sheets("Feuil2").Range("a2")
' Suite de ton code ...

Est-ce cela que tu voulais !?

A+
 

papapaul

XLDnaute Impliqué
Re : Décaler ligne total apres insertion de lignes par macro

:) Salut Bruno, j'ai du mal expliquer
Au départ j'ai une ligne Total en ligne 10 avec
une formule Somme.
J'ai une ligne en-tête( ligne 1)
La copie des données (lignes) se fait successivement
sur la ligne 2, puis 3 etc. à l'aide d'une macro.
Le décalage (descendre de 1 la ligne total)
doit commencer à se faire quand j'arrive ligne 9,
pour ne pas écraser la ligne total.
donc ensuite ligne 10 puis 11 etc...
Tant qu'on atteint pas la ligne total, on fait pas le décalage.
Ton idée serait bonne mais ca fait le décalage quand même
quand les lignes sont vides.
Ce que j'arrive pas à faire :
Tant que les lignes 2 à 9 sont vides, on peut faire
la copie sans décalage de la ligne total,
quand on arrive sur la ligne total, donc pas vide
il faut commencer le décalage successif à chaque
nouvelle insertion de ligne.:p
Si vous arrivez pas à me comprendre,
je mettrais mon vrai fichier, mais c'est compliqué.

Amitiés, bon courage à tous, à moi d'abord:D

Vive XLD
 

papapaul

XLDnaute Impliqué
Re : Décaler ligne total apres insertion de lignes par macro

:rolleyes: Je sais pas si ca va être plus clair.
Insérer cette macro ( call Macro5) en fin de la procédure
qui copie mes lignes, mais l'activer seulement quand j'atteinds
la ligne total de la feuille de destination. (ligne 10 dans l'exemple)


Sub Macro5()
'
Dim X As Long
Application.CutCopyMode = False
X = Range("c" & cells.Rows.Count).End(xlUp).Row
If Range("c" & X) = "Total" Then
Rows(X).Insert Shift:=xlDown
End If
End Sub

Les copies de lignes se font 1 par 1,
Tant qu'on atteint pas la ligne 10
faire les copies successives sans décalage.

Plus compliqué que je pensais.

Merci Bruno, Merci à tous.:)
 

ninbihan

XLDnaute Impliqué
Re : Décaler ligne total apres insertion de lignes par macro

Bonjour Papapaul et Bruno

Un essai, mais le total reste à voir

Code:
Sub Macro1()

Dim Lginser As Single

With Sheets("Feuil1")
 'J ai écrit comme ca pour la ligne 2
'mais en vrai, les cellules à copier sont décalées
'un peu partout dans une voir d'autres feuilles.
Lginser = .Range("a65536").End(xlUp).Row + 1
If Range("c" & Lginser) = "Total" Then
Rows(Lginser).Insert Shift:=xlDown
End If
.Cells(Lginser, 1) = Sheets("Feuil2").Range("a2")
.Cells(Lginser, 2) = Sheets("Feuil2").Range("b2")
'ici ca pourrait être .range("k14")
.Cells(Lginser, 3) = Sheets("Feuil2").Range("c2")
.Cells(Lginser, 4) = Sheets("Feuil2").Range("d2")
.Cells(Lginser, 5) = Sheets("Feuil2").Range("e2")
'ici ca pourrait même être Sheets("Feuil5").Range("az8")
.Cells(Lginser, 6) = Sheets("Feuil2").Range("f2")
Dim X As Long

End With
End Sub

Bon aprés midi
 

kjin

XLDnaute Barbatruc
Re : Décaler ligne total apres insertion de lignes par macro

Bonjour,
Pourquoi ne pas simplement tester que la dernière ligne n'est pas la ligne 10 ?
Si j'ai bien tout compris.
A+
kjin
 

Pièces jointes

  • PapaPaul_v1.zip
    9 KB · Affichages: 57

papapaul

XLDnaute Impliqué
Re : Décaler ligne total apres insertion de lignes par macro

:) Salut Forum, kjin, cbea.
Les 2 solutions fonctionnent bien mais milles excuses kjin,
la solution de cbea par une macro directe me conviens mieux
même si elle semble plus compliqué. Elle est plus proche de
ce que j'ai déjà commencer.
Je viens d'y passer 2 heures :p
Modification de la Macro 1 pour l'adapter à mon bidule
et insertion dans plusieurs modules avec Call test.

Je manquerais pas de mettre mon Usine à dispo quand
j'aurais "nettoyer" un peu le fouillis de mes codes,
par moment je m'y retrouve pas moi-même:D

Merci encore et bonne journée.;)
 

papapaul

XLDnaute Impliqué
Re : Décaler ligne total apres insertion de lignes par macro

:) Re Bruno, Ninbihan, kjin, cbea....
Je résiste pas, je vous joins mon Usine presque terminée.
(Grâce à vous tous et surtout cbea ces derniers jours.)

Evidemment petite question : au départ, pour une simple question
de lisibilité ou d'impression mes feuilles services sont limitées
à 14 patients. Au fur et à mesure ça peut être plus, voilà
pourquoi je voulais décaler la ligne Total.
Après mes tests, dans la feuille Y, la ligne total se retrouve en 31.:D
Je peux supprimer les lignes, mais histoire de tout automatiser,
faire l'inverse du décalage vers le bas ??? en s'arrêtant ligne 21.:confused:
Si je transfert un patient qui se trouve par exemple en ligne 25 ou 23
avec mon bouton Sortie il va bien dans les Sortis mais la ligne reste.

C'est rien que pour savoir, si c'est trop compliqué, pas grave.

Amitiés, et merci à tous;)
A bientôt pour la suite de mes aventures

Lien supprimé
 

Pièces jointes

  • Accueil_chez_lagrande.zip
    77.3 KB · Affichages: 90

la grande

XLDnaute Junior
Re : Décaler ligne total apres insertion de lignes par macro

Salut Papapaul, salut le forum.
Et ben dis donc, ton fichier devient génial...
J'y ai jeté un coup d'oeil rapidement, mais je vais approffondir demain, ou ce soir peut-être. Je te tiens au courant dés que j'aurais testé.
Bye
 

Discussions similaires

Réponses
3
Affichages
867

Statistiques des forums

Discussions
313 899
Messages
2 103 380
Membres
108 630
dernier inscrit
bsb