Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Julie-F

XLDnaute Occasionnel
Bonsoir le forum

J'aimerais savoir si quelqu'un pouvait m'apporter quelques solutions aux pbs suivants :

1. Est-il possible de recopier automatiquement une ligne entière d'un tableau lors d'une nouvelle saisie dans la ligne suivante en reprenant les mêmes mises en forme, formules... :confused:

2. J'ai lu que l'on pouvait actualiser une zone d'impression par bouton permettant ainsi d'imprimer un tableau jusqu'à la derniere ligne renseignée mais je n'arrive pas à l'adapter à mon fichier :(
 

Fichiers joints

BERRACHED said

XLDnaute Accro
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

BONJOUR,Julie,Jeanpierre

bravo jeanpierre c formidable ta macro c'est une réponse pour julie mais pour beaucoup d'autres la question reviens très souvent comment tracer un tableau par macro ? je crois que ce code en l'améliorant pourra faire beaucoup de chose
cordialement
 

Julie-F

XLDnaute Occasionnel
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonsoir Jean-Pierre, Said

Merci Jean-Pierre pour ta double macro.
J'ai tenté de reprendre une macro proposée par Boisgontier :)o pour le prénom) mais celle-ci ne s'applique qu'aux colonnes B à E sur mon tableau
or je souhaiterai qu'elle reprenne les formules et les MEF de la colonne B à L.


Sub copyDernièreLigneligne()
ncol = [B1].CurrentRegion.Columns.Count
[B65000].End(xlUp).Offset(1, 0).Resize(1, ncol).Select
Selection.Offset(-1, 0).Copy ActiveCell
On Error Resume Next
Selection.SpecialCells(xlCellTypeConstants, 23).ClearContents
End Sub



Jusqu'à présent je n'ai pas réussi à voir où le bas blesse.

Auriez-vous une idée ?
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonjour,

Non testé (pb avec le fichier récupéré)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect([B10:B1000], Target) Is Nothing And Target.Count = 1 Then
    Application.EnableEvents = False
    ncol = 10
    [C65000].End(xlUp).Offset(1, 0).Resize(1, ncol).Select
    Selection.Offset(-1, 0).Copy ActiveCell
    On Error Resume Next
    Selection.SpecialCells(xlCellTypeConstants, 23).ClearContents
    Application.EnableEvents = True
  End If
End Sub
JB
 

Julie-F

XLDnaute Occasionnel
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonsoir à tous

Boisgontier, le code fonctionne à merveille. De plus, je n'ai plus besoin d'associer 1 bouton à la macro (dont vous êtiez déjà l'auteur) citée dans mon dernier message.

Un petit souci toutefois, la colonne B contient une liste (validation de données) cf. doc joint
Dois-je revoir sa conception ?

J'ose une autre petite question : est-il possible d'invalider le menu outils/macro ainsi que la zone de formules des cellules?

Merci encore çà tous pour votre aide précieuse.
 

Fichiers joints

BOISGONTIER

XLDnaute Barbatruc
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonjour,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect([B10:B1000], Target) Is Nothing And Target.Count = 1 Then
    Application.EnableEvents = False
    ncol = 10
    [C65000].End(xlUp).Offset(1, 0).Resize(1, ncol).Select
    Selection.Offset(-1, 0).Copy ActiveCell
    On Error Resume Next
    Selection.SpecialCells(xlCellTypeConstants, 23).ClearContents
    ActiveCell.Offset(0, -1).Copy ActiveCell.Offset(1, -1)
    ActiveCell.Offset(1, -1).ClearContents
    Application.EnableEvents = True
  End If
End Sub
Pour empêcher la destruction intempestive des formules d'un tableau:
-Sélectionner les zones de saisie
-Format/Cellule/Protection
-Décocher Verrouillée
-Outils/Protection/Protéger la feuille


JB
 

Fichiers joints

Dernière édition:

Julie-F

XLDnaute Occasionnel
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonsoir à tous

Un grand merci à vous et en particulier à BOISGONTIER tant pour le "new" code que pour l'attention apportée.

J'avais opté en effet pour ce systeme de protection des cellules avec mot de passe (notamment celles portant sur le calcul de date automatique des différents rappels)
Mais il arrive parfois que la date de rappel soit imposée d'où l'obligation de lever la protection.
1er risque : ne pas proteger à nouveau les cellules apres intervention
2eme risque : communiquer le mot de passe (nb utilisateurs) grevant d'autant sa raison d'être.

J'avais pensé à un bouton proteger / deproteger mais la encore je ne suis pas certaine de son efficacité d'où ma question de la faisabilité d'invalider le menu outils/macro ainsi que la zone de formules des cellules?
 

BOISGONTIER

XLDnaute Barbatruc
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonjour,

Pour désactiver la commande Outils/Macro:

Code:
Sub auto_open()
  CommandBars(1).Controls("Outils").Controls("Macro").Enabled = False
End Sub

Sub auto_close()
  CommandBars(1).Controls("Outils").Controls("Macro").Enabled = True
End Sub
La cellule A1 n'est modifiable que si on connait un mot de passe:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$A$1" Then
    rep = InputBox("Password?")
    If rep = "toto" Then
      ActiveSheet.Unprotect Password:="jacques"
      [A1].Locked = False
      ActiveSheet.Protect Password:="jacques"
    Else
      ActiveSheet.Unprotect Password:="jacques"
      [A1].Locked = True
      ActiveSheet.Protect Password:="jacques"
    End If
  End If
End Sub

JB
 

Fichiers joints

Dernière édition:

Julie-F

XLDnaute Occasionnel
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonjour,

La cellule A1 n'est modifiable que si on connait un mot de passe:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$A$1" Then
    rep = InputBox("Password?")
    If rep = "toto" Then
      ActiveSheet.Unprotect Password:="jacques"
      [A1].Locked = False
      ActiveSheet.Protect Password:="jacques"
    Else
      ActiveSheet.Unprotect Password:="jacques"
      [A1].Locked = True
      ActiveSheet.Protect Password:="jacques"
    End If
  End If
End Sub
JB
Bonsoir à tous

Bonsoir BOISGONTIER


J'ai essayé le code fourni ci-dessus et apres de multiples essais :( je rencontre toujours 2 problemes :

1. lorsque l'on tape le mot de passe (jacques), alors que la cellule devrait pouvoir être modifiée puisque le mot de passe a été saisi, un message apparait indiquant que la cellule est protégée ... et en lecture seule. Quid ?

2. je voudrais non pas proteger 1 cellule mais un ensemble de cellules de 2 colonnes H et K : de H9 à H........ et de K9 à K.....
hors la reference de la cellule dans le code est en "valeur absolue", comment peut-on alors reproduire cette protection lors de la recopie de la ligne ? :confused:
 

Julie-F

XLDnaute Occasionnel
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonsoir à tous

Bonsoir Boisgontier

J'ai lu avec beaucoup d'attention le post suivant :
http://www.excel-downloads.com/forum/97377-calendrier.html


N'ayant pu encore regler mon probleme de protection et mot de passe (cf. message ci-dessus)

J'aurai voulu savoir comment adapter un calendrier accessible par double clic sur certaines de mes cellules (colonnes H et K ) protegées.

Pour obtenir au final : dans mes cellules de calcul de date automatique la possibilité de les modifier uniquement en double cliquant sur celles-ci le choix s'operant directement par le biais du calendrier.

Je joins un extrait du fichier peut être plus clair que ces explications.:eek:

Ceci est-il possible ??????
 

Fichiers joints

Julie-F

XLDnaute Occasionnel
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonsoir à tous

Boisgontier, merci beaucoup.
Je viens de regarder le fichier joint mais j'ai un petit souci, je voudrais voir apparaitre le calendrier dans des colonnes multiples = H ET K qui sont protegées.

Je suppose que je dois modifier la formule

If Not Intersect(Range("E9:E1000"), Target) Is Nothing Then

par : If Not Intersect(Range("H9:H1000","K9:K1000"), Target) Is Nothing Then

Comment la modifier pour accepter 1 autre colonne ? :confused::confused::confused:

Pourquoi lors de la recopie de la ligne complete de données, la HAUTEUR de celle-ci à l'origine = 20 augmente ? :(:(:(
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonjour,


Il y a des formules en H et K?


If Not Intersect(Range("E9:E1000,H9:H1000,K9:K1000"), Target) Is Nothing Then


JB
 

Julie-F

XLDnaute Occasionnel
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Bonjour à tous,

Bonjour,
Il y a des formules en H et K?

If Not Intersect(Range("E9:E1000,H9:H1000,K9:K1000"), Target) Is Nothing Then

JB
Merci pour l'aide apportée.

Oui, pour répondre à la question, il y a des formules dans ces 2 colonnes (cf. doc joint)

Peut-on lors de la recopie auto d'une ligne fige la hauteur de celle-ci à 20 ?
 

Fichiers joints

Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Re : Pb recopie auto d'une ligne entière (formules...) lors d'une nouvelle entrée

Hauteur de ligne:


If Not Intersect([B10:B1000], Target) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
ncol = 10
[C65000].End(xlUp).Offset(1, 0).Resize(1, ncol).Select
ActiveSheet.Unprotect Password:=""
Selection.Offset(-1, 0).Copy ActiveCell
On Error Resume Next
Target.EntireRow.RowHeight = 20
Selection.SpecialCells(xlCellTypeConstants, 23).ClearContents
ActiveCell.Offset(0, -1).Copy ActiveCell.Offset(1, -1)
ActiveCell.Offset(1, -1).ClearContents
ActiveSheet.Protect Password:=""
Application.EnableEvents = True
End If

JB
 

Discussions similaires


Haut Bas