• Initiateur de la discussion Initiateur de la discussion caline
  • 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 !

caline

XLDnaute Occasionnel
bonsoir à tous
JE ME LANCE mais je cale car souhaiterais la modifier mais je ne sais pas où?

Sub copie_ligne()
'
' copie_ligne Macro
' Macro enregistrée le 6/09/2006
'

'
Rows("8:9").Select
Selection.Copy
Rows("10:10").Select
ActiveSheet.Paste
Range("B10").Select
Application.CutCopyMode = False
Range("B10").Select
ActiveCell.FormulaR1C1 = "0"
Range("B11").Select
ActiveCell.FormulaR1C1 = " "
Range("c10").Select
ActiveCell.FormulaR1C1 = "°"
End Sub



en réalité je souhaiterais que si la cellule a? est vide il exécute la macro

voici mon fichier et merci de votre aide
 

Pièces jointes

Re : modifier une macro

Bonjour Caline, Romainchu, re Mouchty

Ci dessous ta macro modifiée, si j'ai bien compris ton problème :

Code:
Option Explicit
Sub copie_ligne()
If IsEmpty(Range("A1")) Then [COLOR="Green"]'remplace [COLOR="Red"]A1[/COLOR] par la cellule que tu veux tester[/COLOR]
    Rows("8:9").Copy Rows("10:10")
    Range("B10").Value = "0"
    Range("B11").Value = " "
    Range("c10").Value = "°"
End If
End Sub

Bonne journée
@+
 
Re : modifier une macro

caline à dit:
bonsoir à tous



en réalité je souhaiterais que si la cellule a? est vide il exécute la macro

voici mon fichier et merci de votre aide
Bonjour à tous,
Le code de Pierrot93,placer dans l'évenement change de la feuille janvier,
si rien en (a1) alors la macro s'éxecute.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range
Set cel = Range("a1")
If Not Application.Intersect(cel, Range(Target.Address)) Is Nothing Then
If IsEmpty(Range("A1")) Then 'remplace A1 par la cellule que tu veux tester
Rows("8:9").Copy Rows("10:10")
Range("B10").Value = "0"
Range("B11").Value = " "
Range("c10").Value = "°"
End If
End If
End Sub
Salut Yves
 
Re : modifier une macro

MERCI à Zio, Pierrot, romainchu78,Mouchty85 et les autres

c'est pas vraiment ce que j'aimerais
ce fichier est un fichier horaire
si par exemple dans la feuille janvier, dans le colonnes A il y a les noms des agents de l'unité mais il peut y en avoir 3 comme 26 c'est agents dépendent de la feuille récap et de leur numéro de réf .Afin d'éviter d'alourdir pour certaines unités le fichier, j'aurai aimé que la macro me recopie les deux lignes contenant les formules et les ajoute sous la dernière ligne qui contient les qualifications des agents, ainsi je pourrais y ajouter une personne supplémentaire et lui faire son horaire

donc les deux lignes a recopier sont variables elles dépendent du nbre d'agents qui sont inscrits et de ce fait le copier des deux lignes devrait se faire à la suite des deux dernière ligne remplies

au départ le fichier contient que les deux premieres 6 et 7 et dès que la cell a6 et a7 est remplies deux autres lignes devraient se copier
j'espère que vous avez compris car ce n'est pas aisé de la faire par écrit

je renvoi le fichier avec un complèment d'explication

merci
 

Pièces jointes

Re : modifier une macro

rebonsoir

en faisant une recherche sur ajoute de ligne j'ai trouvé une macro de 'myDearFriend! - Août 2006
celle-ci est:
Sub AjouteLigne()
'myDearFriend! - Août 2006 pourboudu2
Dim Plage As Range
Dim L As Long
With Sheets("1ère COM° FSLU ACCES")
Set Plage = .Rows(.Range("A65536").End(xlUp).Row)
Plage.Copy
.Rows(Plage.Row + 1).Insert shift:=xlDown
Application.CutCopyMode = False
On Error Resume Next
.Rows(Plage.Row + 1).Cells.SpecialCells(xlCellTypeConstants, 23).ClearContents
End With
End Sub

c'est presque ce que je cherche mais je devrais ajouter deux lignes la paire et l'impaire

si tu es sur le forum myDearFriend tu pourrais peut-être y jeter ton coup d'oeil


un tout grand merci
 
Re : modifier une macro

merci
ziopizza cela m'aide déjà beaucoup
mais ce que j'aurai du dire c'est que j'ai des tableaux récapitulatifs en bas du fichier et donc lorsque j'utilise la macro il me rajoute les agents au bas de ces lignes occupées mais il faudrait qu'elle les rajoute après les autres agents
enfin si tu parviens ou si on parvient à me le faire, car moi j'en suis bien incapable.
 
Re : modifier une macro

Re moi ,
Si j'ai compris,
Application.ScreenUpdating = False
Range("a1:cg2").Copy
Range("a65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

Si tu as des lignes occupés a partir de la ligne 1000 par exemple tu change Range("a65536")par range("a999")
et tu n'a plus de problème
@+ Yves
 
Re : modifier une macro

génial

et je suis même parvenue a la modifiée pour que les lignes a copiée ne soit pas en a1 mais ailleurs et a réduire le range à 79 car les lignes suivantes sont occupées a partir de 80

super j'ai certainement pas tout compris mais le but est que je passerai une meilleure nuit en ayant appris encore quelque chose grâce a vous tous
 
Re : modifier une macro

merci au forum de me dire ce qui ne va pas
j'ai voulu ajouter un mot de passe sur le bouton ajout agent de la macro de ziopizza dans le fichier (voir plus haut) , c'est ok mais si les lignes qui doivent être copiées sont masquées, il me les copie avec avec une hauteur de ligne très petites, alors que sans mot de passe il me le faisait même masqué avec une hauteur de ligne standard.

comment faire pour que si je change a1:cg2 enRange soit "a80:cg81" et quelque soit les lignes ajoutées ou supprimées il ne garde cette réf j'ai essayé $a80 $a$80 mais quand je supprime des lignes celaz ne fct plus car les

Sub AJOUTELIGNE()
If InputBox("veuillez saisir le mot de passe", "mot de passe") <> "kiki" Then Exit Sub
Application.ScreenUpdating = False

Range("a1:cg2").Copy
Range("a60").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
End Sub


merci à vous
Caline
 
Re : modifier une macro

bonsoir

personne pour m'aider:
merci au forum de me dire ce qui ne va pas
j'ai voulu ajouter un mot de passe sur le bouton ajout agent de la macro de ziopizza dans le fichier (voir plus haut) , c'est ok mais si les lignes qui doivent être copiées sont masquées, il me les copie avec une hauteur de ligne très petites, alors que sans mot de passe il me le faisait même masqué avec une hauteur de ligne standard.

comment faire pour que si je change a1:cg2 en Range soit "a80:cg81" et quelque soit les lignes supprimées il me garde cette réf j'ai essayé $a80 $a$80 mais quand je supprime des lignes cela ne fct plus car les
réf de lignes ne sont plus A80:cg81 mais forcément # en fct des lignes supprimées

Sub AJOUTELIGNE()
If InputBox("veuillez saisir le mot de passe", "mot de passe") <> "kiki" Then Exit Sub
Application.ScreenUpdating = False

Range("a1:cg2").Copy
Range("a60").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
End Sub

merci à vous
 
Re : modifier une macro

Bonsoir Caline ,
Si tu supprimes des lignes entre a1 et a80 les formules qui se trouvent en a80 seront forcément déplacées vers le haut d'autant de lignes.
Ou alors il te faut insérer autant de lignes vides que tu en as supprimées,ou éffacer les lignes sans les supprimer.
Pour le problème de format ,je ne vois pas car cela fonctionne chez moi
Salut Yves
 
Re : modifier une macro

Bonsoir caline
bonsoir le fil

je ne sais pas si j'ai tout compris,mais il est aussi possible de déterminer la premiere ligne vide en partant du Haut du tableau à condition qu'il n'y ai pas de lignes vide dans ce tableau
exemple
si la premiere ligne où se trouve un agent est en A4
Code:
  Range("a1:cg2").Copy
   Range("[COLOR=Blue]A4[/COLOR]").End(xlDown).Offset(1, 0).Select
    ActiveSheet.Paste
bonne continuation 😀
 
- 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
18
Affichages
597
Réponses
10
Affichages
791
Réponses
4
Affichages
586
Réponses
1
Affichages
575
Retour