Macro pour une feuille de personnage de JDR, copié /coller de valeur

La programmation actuel du document est issu de mon utilisation de l'outil d'enregistrement de Macro, et d'un ami qui m'a donné un sacré coup de main.

Alors voilà le contexte actuel :

Dans la feuille "Feuille Personnage", j'ai entouré de orange la zone où je me pose des questions.

J'ai actuellement programmer un bouton s'appelant "+d'armes". Ce bouton me permet de créer à la fois une ligne dans un tableau d'arme, et une autre ligne dans un tableau situé au-dessous, qui s'intitule : "Arme (Spécifique)"

Mon 1er problème :
La macro lié au même bouton, stop le nombre de ligne du tableau d'arme à 4, mais pas pour le tableau le suivant. Je cherche donc à implémenter cette fonction dans le même bouton.

Le nom de la macro gérant ceci s'appelle "Ajout_suppr_armes_fleches", et la partie concernant mon problème est la séquence compris dans "Sub Ajout_Arme()".

Mon deuxième problème :

Je cherche à implémenter aussi dans ce bouton, le fait que la 1ère cellule, de la première ligne du tableau "Arme (spécifique)" soit égale à la valeur dans la première cellule de la première ligne du tableau "Armes". Et ce même si le tableau "Armes" venait à être décaler à cause du tableau de "compétences" situé juste au-dessus qui décalera celui-ci.

Pour donner un exemple plus parlant dans le tableau :

Que la cellule "B34" soit toujours égale à la valeur dans la cellule "B26", et ce peu importe le placement des deux tableaux.

Merci pour toute l'aide futur que vous m'apporterez. Et si vous pouviez détaillé la façon de procéder, pour que je puisse moi-même tenter de comprendre, vous seriez des anges.

Cordialement.

Bonsoir Algalaran,

Voici le code (non optimisé) mais qui fait le job demandé et qui remplace l'ancien

' Ajout_Arme Macro
' Permet d'ajouter 2 lignes d'armes à l'armement du personnage
Sub Ajout_Arme()
  Dim FirstRow As Long, LastRow As Long
  Dim Lig As Long, NumLig As Long
  'Proposition de code : (cf les macros suivantes ci dessous pour les explications détaillées. J'ai modifié ce code en dernier)
  '---------------------------------------------------
  Sheets("Feuille Personnage").Select
  ' Trouver la case "compétence"
  Cells.Find("compétence").Select
  ' Selectionner la dernière case non vide située dessous
  Selection.End(xlDown).Select
  ' Selectionner la 1ere case Agilité
  ActiveCell.Offset(3, 1).Select
  ' Içi, on va compter le nombre de cases dans la colonne C de ton tableau d'armes.
  Range(Selection, Selection.End(xlDown)).Select 'selectionne toutes les cases sous C26 jusqu'à la prochaine case vide
  Nbre_lignes = Selection.Rows.Count 'compte le nombre de lignes dans la sélection et place ce nombre dans la variable Nbre_lignes

  'S'il y a moins de 12 lignes ( = 4 armes), la macro continue et crée une arme suppl...
  If Nbre_lignes < 12 Then
    Range(ActiveCell.Offset(2, -1), ActiveCell.Offset(0, 6)).Select
    Selection.Copy
    Selection.Insert Shift:=xlDown
    Range("A24").Select
  Else '... sinon, message d'alerte et arrêt de la macro
    MsgBox ("Attention, pas plus de 4 armes actives.")
    ' Sortie de la procédure
    Exit Sub
  End If

  'Comme pour les flèches, pour s'adapter au nombre de lignes ajoutées au dessus.
  Cells.Find("Arme (spécifique)").Select 'On se place sur la case "Type de Flèche"
  ActiveCell.Offset(1, 0).Select 'on se place sur la première case sous Arme (spécifique)
  ' Première lignes des armes spécifiques
  FirstRow = ActiveCell.Row
  ' on selectionne les deux premières lignes du tableau
  Range(ActiveCell, ActiveCell.Offset(0, 4)).Select
  Selection.Copy 'on copie et on insère
  Cells.Find("Arme (spécifique)").Offset(1, 0).Select
  Selection.Insert Shift:=xlDown
  Application.CutCopyMode = False
  ' Dernière ligne des armes spécifiques
  LastRow = Selection.End(xlDown).Row
  ' Inscrire les formules
  For Lig = FirstRow To LastRow
    NumLig = 26 + ((Lig - FirstRow) * 3)
    Cells(Lig, "B").FormulaLocal = "=B" & NumLig
  Next Lig
End Sub

@+

Merci pour votre aide précieuse ! ^^

Rechercher des sujets similaires à "macro feuille personnage jdr copie coller valeur"