Macro VBA

Bonjour à tous

j'ai un probleme ! enfin comme beaucoup

je suis sur excel entrain de faire une macro

Sub ajoutnom2()

'

' ajoutnom2 Macro

'

'

Sheets("RP").Select

Range("W40").Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Sheets("Ajout nom").Select

Range("H13").Select

Selection.Copy

Sheets("RP").Select

Range("W40").Select

ActiveSheet.Paste

Sheets("Ajout nom").Select

Selection.ClearContents

MsgBox "Le nom a été ajouté!"

ActiveWorkbook.Save

End Sub

j'explique la macro:

je vais sur une page , je selectionne une case j'insere une case vide en dessous

je vais sur une autre page et je selectionne ce qui a été ecrit dans une case et la copie dans la case vide de l'autre page

mon probleme c'est que ca marche quand la premeiere page est pas protegé et ne marche pas quand la page est protegée

l'insertion d'une case ne marche pas alors que dans les permissions j'ai autorisé inserer ligne

erreur sur cette ligne :

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

que faire ?

merci de votre aide

Bonsoir,

Comme vous le dites :

mon probleme c'est que ca marche quand la premeiere page est pas protegé et ne marche pas quand la page est protegée

l'insertion d'une case ne marche pas alors que dans les permissions j'ai autorisé inserer ligne

Je n'ai pas testé, mais l'autorisation de l'insertion d'une ligne n'est pas égale à l'insertion d'une cellule ! Mais je peux me tromper.

Ensuite au niveau de votre code, il y a beaucoup (trop ?) de select...

Lors de votre copie, vous voulez tout copier ou juste la valeur de la cellule sélectionnée de la feuille Ajout nom ?

Sinon :

Sub ajoutnom2()
'
' ajoutnom2 Macro
'
Sheets(1).Unprotect
Sheets(1).Range("A4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets(1).Range("A4").Select
Sheets(2).Range("A1").Copy
Sheets(1).Paste
Sheets(2).Range("A1").ClearContents
Sheets(1).Protect
MsgBox "Le nom a été ajouté!"
ActiveWorkbook.Save
End Sub

Voilà ... j'ai inséré une instruction de dé-protection et protection de feuille avant et après les modifications.

Sheets(1) correspond à la feuille d'index 1, c'est à dire celle qui se trouve à gauche au niveau des onglets, le sheets(2) correspond à celle immédiatement à droite de la première....

@ bientôt

LouReeD

merci

j'avais essaye avec unprotect mais comme j'ai un mdp ca me le demande et j'ai pas envie de le donner au utilisateur donc j'ai abandonner cette option

et pour les select c'est le code qui me donne ca quand je fais enregistrer une macro

je ne sais pas faire autrement

j'ai contourné le probleme

j'ai créé une feuille pour chacune de mes base de données comme ca je peux inserer une ligne entiere et pas juste une case du coup ca marche

merci pour les infos

Bonjour,

Pour ce qui est de votre "contournement" ci-joint un fichier PDF qui dit tout !

@ bientôt

Loureed

en fait de fichier joint, c'est plutôt une adresse internet : http://optim18.rcac.fr/TablesExcel_13ReglesOr.pdf

Rechercher des sujets similaires à "macro vba"