Que je suis heureux d'avoir déniché ce forum ! J'espère que vous allez pouvoir m'aider parce que la je m'arrache ce qu'il me reste de cheveux...
Je suis en train de créer un inventaire du stockage de matériel médical dans mon association, avec d'une part une liste complète de l'inventaire, d'autre un journal des entrées et sorties. Tout cela avance plutôt bien si ce n'est un foutu bouton pour ajouter une nouvelle ligne à mes tableaux.
Le but du bouton est d'identifier la première ligne vide de la colonne A, et ensuite d'y copier les formules et la mise en forme de la ligne juste au dessus, mais sans copier le contenu qui ne résulte pas d'une formule.
J'ai creusé un peu sur le net, mais je suis une bille en VBA et je n'y comprends pas grand-chose. Voici ce que j'ai pour l'instant :
VB:
Sub Nouvelle_reception()
Range("A3340").Select
Selection.End(xlUp).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
Question 1/ Quand je lance la macro, j'ai une erreur 1004 "Le déplacement de cellules dans un tableau de votre feuille de calcul n'est pas autorisé." Pourquoi ?
Question 2/ Comment recopier également les formats et formules des cellules qui sont en colonne B à G et pas seulement en A ?
si tu as une version pas trop ancienne d'excel sélectionne ton tableau et 'Insertion / Tableau'
Normalement une saisie sur la 1ère ligne vide en-dessous te copiera formules et formats.
Si ça ne le fait pas reprend ton tableau avec juste les titres et 1 ligne, teste, et remet tes données.
eric
Pour ne pas être obligé de se positionner manuellement sur la ligne en dessous, il devrait être possible de faire :
VB:
Sub Nouvelle_reception()
Application.GoTo ActiveSheet.ListObjects(1).ListRows.Add.Range.Columns(1)
End Sub
(C'est long, d'accord, mais c'est encore plus long à décrire :
Sélectionne la cellule de la 1ère colonne de la plage couverte par une nouvelle ligne ajoutée au 1ere tableau de la feuille active.)