Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Protection et insertion de lignes

13 réponses
Avatar
Érico
Bonjour,

J'ai un fichier Excel qui sera envoyé à d'autres personnes et il y une
protection sur 4 colonnes.

Je dois faciliter les gens:
- Ces autres personnes doivent pouvoir insérer des lignes.
Et les problèmes sont les suivants:
- il y a des formules qui ne sont pas copié sur la ligne nouvellement
insérer.
- On ne peut insérer des lignes quand il y a une protection.

Comment je pourrais résoudre ce problème?

J'ai pensé mettre une macro, mais je risque d'avoir les problèmes suivant:
- ça prendrais un bouton pour exécuter la macro, mais ce bouton est
difficlement installable sur les autres utilisateurs.
(l'insertion d'une ligne peux se faire n'importe où)
- Si je mais une protection avec mot de passe, ce mot de passe va être
facilement visible dans la macro?

Merci de votre collaboration.

Érico de Montréal du Canada Français

3 réponses

1 2
Avatar
Starwing
Bonjour Érico,

Un début de piste...

Sub AjouterDesLignes()

Dim A As Variant, B As Range, C As Integer
Dim Col As Long
Dim CopieLaFormule As Boolean

A = Application.InputBox(Prompt:="Combien de lignes faut-il insérer?",
Type:=1)

If A = "Faux" Then Exit Sub
If A <= 0 Then Exit Sub

On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule.", Type:=8)
If Err <> 0 Then
Err = 0
Exit Sub
Else
B.Select
For C = 1 To A
B.EntireRow.Insert
CopieLaFormule = False
For Col = 0 To 256
If ActiveCell.Offset(-1, Col).HasFormula Then
ActiveCell.Offset(C - 1, Col).FormulaR1C1 ActiveCell.Offset(-1, Col).FormulaR1C1
CopieLaFormule = True
End If
Next Col
Next C
End If
Application.CutCopyMode = False
End Sub

Starwing
Avatar
LSteph
Bonsoir,
ce serait qd même sympa de me dire ce qui ne va pas dans le code proposé!

"Érico" a écrit dans le message de news:
OTQsCV%
Comment je pourrais mettre ça accessible pour n'importe quelle ligne?



"michdenis" a écrit dans le message de news:
eXXHrS%
Bonjour Érico,

Ceci pourrait te donner des idées pour ta macro pour ajouter des lignes !

'--------------------------
Sub AjouterDesLignes()

Dim A As Variant, B As Range, C As Integer
A = Application.InputBox(Prompt:="Combien de lignes faut-il insérer?",
Type:=1)

If A = "Faux" Then Exit Sub
If A <= 0 Then Exit Sub

On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule.", Type:=8)
If Err <> 0 Then
Err = 0
Exit Sub
Else
For C = 1 To A
B.EntireRow.Insert
Next
End If

End Sub
'--------------------------


Salutations!



"Érico" a écrit dans le message de news:

Bonjour,

Quel genre de macro que je peux faire pour insérer une ligne?
Pas pour faire un bouton à chaque ligne?
Dois-je faire une macro qui insère une ligne où je suis?
Ou une macro qui te demande à quelle ligne insérer cette ligne?

Ou je pourrais trouver cette macro?

Merci

"LSteph" a écrit dans le message de news:

bonjour,
- On ne peut insérer des lignes quand il y a une protection.
J'ai pensé mettre une macro,
(bonne idée)


activesheet.protect password:="thepass", userinterfaceonly:=true


facilement visible dans la macro?
pas si le projet est verrouillé!



lSteph



"Érico" a écrit dans le message de news:

Bonjour,

J'ai un fichier Excel qui sera envoyé à d'autres personnes et il y une
protection sur 4 colonnes.

Je dois faciliter les gens:
- Ces autres personnes doivent pouvoir insérer des lignes.
Et les problèmes sont les suivants:
- il y a des formules qui ne sont pas copié sur la ligne nouvellement
insérer.
- On ne peut insérer des lignes quand il y a une protection.

Comment je pourrais résoudre ce problème?

J'ai pensé mettre une macro, mais je risque d'avoir les problèmes
suivant:
- ça prendrais un bouton pour exécuter la macro, mais ce bouton est
difficlement installable sur les autres utilisateurs.
(l'insertion d'une ligne peux se faire n'importe où)
- Si je mais une protection avec mot de passe, ce mot de passe va être
facilement visible dans la macro?

Merci de votre collaboration.

Érico de Montréal du Canada Français
















Avatar
michdenis
Bonjour Érico,

Ceci devrait être complet :

à copier dans un module standard :

La fonction permet de déterminer la dernière ligne de ta feuille.

Si tu as une donnée dans la cellule A65535 , le maximum de lignes que l'application te permettra d'ajouter est 1, le nombre total de
lignes d'une feuille de calcul étant de 65536. Ainsi la procédure va pouvoir signifier à l'utilisateur qui a saisi une trop grande
valeur.

'--------------------------------
Sub AjouterDesLignes()

Dim A As Variant, B As Range, C As Long
Dim Nb As Long, R As Long
A = Application.InputBox(Prompt:="Combien de lignes faut-il insérer?", Type:=1)
If A = "Faux" Then Exit Sub
If A <= 0 Then Exit Sub
Nb = 65536 - DerLig(ActiveSheet)
If A > Nb Then
MsgBox "Le nombre maximum de lignes que vous " & _
"pouvez ajouter est : " & Nb & "." & vbCrLf & vbCrLf & _
"Recommmencer.", vbCritical + vbOKOnly, "Attention"
AjouterDesLignes
End If

On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule.", Type:=8)
If Err <> 0 Then
Err = 0
Exit Sub
Else
For C = 1 To A
B.EntireRow.Insert
Next
End If
R = B.Row
Range(Range("I" & R & ":L" & R), Range("I" & R - A & ":L" & R - A)).FillUp
Range(Range("O" & R & ":Q" & R), Range("O" & R - A & ":Q" & R - A)).FillUp

End Sub
'----------------------------------
Function DerLig(sh As Worksheet)
On Error Resume Next
DerLig = sh.Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
On Error GoTo 0
End Function
'----------------------------------


Salutations!





"Érico" a écrit dans le message de news: e934zf%
Wowwwwwwwww!!!! Tu m'impressionnes.

Avec l'enlèvement du password, ça fonctionne super bien.

Un gros merci.

Une autres question:

comment lui dire de copier les formules mettons dans les colonnes i12 à L12
et O12 à Q12 qui sont précédent des l'insertion qui est de la ligne 13 et
14?

Un GROS merci

Érico

"michdenis" a écrit dans le message de news:
ObPX7Z%
Débute par tester la macro.... elle s'applique pour la ligne que tu auras
sélectionnée et ce pour n'importe quelle feuille.


Salutations!


"Érico" a écrit dans le message de news:
OTQsCV%
Comment je pourrais mettre ça accessible pour n'importe quelle ligne?



"michdenis" a écrit dans le message de news:
eXXHrS%
Bonjour Érico,

Ceci pourrait te donner des idées pour ta macro pour ajouter des lignes !

'--------------------------
Sub AjouterDesLignes()

Dim A As Variant, B As Range, C As Integer
A = Application.InputBox(Prompt:="Combien de lignes faut-il insérer?",
Type:=1)

If A = "Faux" Then Exit Sub
If A <= 0 Then Exit Sub

On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule.", Type:=8)
If Err <> 0 Then
Err = 0
Exit Sub
Else
For C = 1 To A
B.EntireRow.Insert
Next
End If

End Sub
'--------------------------


Salutations!



"Érico" a écrit dans le message de news:

Bonjour,

Quel genre de macro que je peux faire pour insérer une ligne?
Pas pour faire un bouton à chaque ligne?
Dois-je faire une macro qui insère une ligne où je suis?
Ou une macro qui te demande à quelle ligne insérer cette ligne?

Ou je pourrais trouver cette macro?

Merci

"LSteph" a écrit dans le message de news:

bonjour,
- On ne peut insérer des lignes quand il y a une protection.
J'ai pensé mettre une macro,
(bonne idée)


activesheet.protect password:="thepass", userinterfaceonly:=true


facilement visible dans la macro?
pas si le projet est verrouillé!



lSteph



"Érico" a écrit dans le message de news:

Bonjour,

J'ai un fichier Excel qui sera envoyé à d'autres personnes et il y une
protection sur 4 colonnes.

Je dois faciliter les gens:
- Ces autres personnes doivent pouvoir insérer des lignes.
Et les problèmes sont les suivants:
- il y a des formules qui ne sont pas copié sur la ligne nouvellement
insérer.
- On ne peut insérer des lignes quand il y a une protection.

Comment je pourrais résoudre ce problème?

J'ai pensé mettre une macro, mais je risque d'avoir les problèmes
suivant:
- ça prendrais un bouton pour exécuter la macro, mais ce bouton est
difficlement installable sur les autres utilisateurs.
(l'insertion d'une ligne peux se faire n'importe où)
- Si je mais une protection avec mot de passe, ce mot de passe va être
facilement visible dans la macro?

Merci de votre collaboration.

Érico de Montréal du Canada Français

















1 2