Besoin d'aide pour une macro

Résolu
Eldyviah Messages postés 30 Statut Membre -  
Eldyviah Messages postés 30 Statut Membre -
Bonjour à tous,

Voila je souhaite réaliser une macro me permettant de mettre un nom bien précis, dans la plage allant de L2 jusqu'à la dernière ligne sur plusieurs onglet d’où ma boucle allant de "DEBUT" jusqu'à "FIN".Cependant le nom que je souhaite mettre sur cette plage dépend essentiellement du nom de la feuille active. Pouvez vous m'appuyer sur cette macro selon le code que j'ai commencé à écrire, en rappelant que je suis novice en VBA et que j'essaye seulement de progresser et de comprendre mes erreurs afin de ne pas les refaire. Merci d'avance pour toute aide

Sub insert_formule()

Sheets("DEBUT").Select

Do
ActiveSheet.Next.Select
If ActiveSheet.Name = "DEBUT" Then
Exit Do
End If

Dim i As Integer, DernLigne As Variant, Selection As Variant

DernLigne = Range("L" & Rows.Count).End(xlUp).Row
i = 2

ActiveSheet.Range("L:L").Select

For Selection = i To DernLigne

Do While DernLigne > i

If ActiveSheet.Name = "AAA" Then Selection.Range = "STRUCTURE"

If ActiveSheet.Name = "AAB" Then Selection.Range = "STRUCTURE1"

If ActiveSheet.Name = "AAC" Then Selection.Range = "STRUCTURE2"

If ActiveSheet.Name = "AAD" Then Selection.Range = "STRUCTURE3"

If ActiveSheet.Name = "AAE" Then Selection.Range = "STRUCTURE4"

Range("L1").Name = "ETB"
Exit Do

Loop Until ActiveSheet.Next.Name = "FIN"

End Sub

2 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour Eldyviah, bonjour le forum,

    Pas sûr d'avoir bien compris... Peut-être comme ça :

    Sub insert_formule()
    Dim O As worksheeet 'déclare la variable O (Onglets)
    Dim DL As Long 'déclare la variable DL (Derniere Ligne)
    
    For Each O In Sheets 'boucle sur tous les onglets O du classeur
        If Not O.Name = "DEBUT" And Not O.Name = "FIN" Then 'condition : si l'onglet ne s'appelle ni "DEBUT" ni "FIN"
            DL = O.Cells(Application.Rows.Count, 12).End(xlUp).Row 'définit la dernière ligne éditée Dl de la colonne 12 (=L) de l'onglet O
            Select Case O.Name 'agit en fonction du nom de l'onglet
                Case "AAA" 'cas
                    O.Range("L2:L" & DL).Name = "STRUCTURE" 'action
                Case "AAB" 'cas
                    O.Range("L2:L" & DL).Name = "STRUCTURE1" 'action
                Case "AAC" 'cas
                    O.Range("L2:L" & DL).Name = "STRUCTURE2" 'action
                Case "AAD" 'cas
                    O.Range("L2:L" & DL).Name = "STRUCTURE3" 'action
                Case "AAE" 'cas
                    O.Range("L2:L" & DL).Name = "STRUCTURE4" 'action
            End Select 'fin de l'action en fonction du nom de l'onglet O
            O.Range("L1").Name = "ETB" 'nomme la cellule Li
        End If 'fin de la condition
    Next O 'prochain onglet de la boucle
    End Sub

    0
    1. Eldyviah Messages postés 30 Statut Membre
       
      Bonjour ThauTheme,

      Tout d'abord merci d'avoir pris du temps pour répondre à ma requête,
      je vais essayer ton code et essayer de l'adapter à ce que je suis entrain de réaliser,
      je te tiens au courant sur les aboutissements de cette expérimentation dans la journée.

      Bien cordialement
      0
    2. Pierre1310 Messages postés 8854 Statut Membre 652
       
      ThauTheme, a la base les feuilles sont vides il me semble, il faut qu'il renseigne la valeur pour la dernière cellule.
      0
  2. Pierre1310 Messages postés 8854 Statut Membre 652
     
    Salut,

    Peux-tu me fournir un exemple avec ton document excel que je puisse t'aider?
    Vas sur le site cijoint.com, fais moi un exemple et envois moi le lien.
    Je regarderai ça après mangé.
    0
    1. Eldyviah Messages postés 30 Statut Membre
       
      Bonjour,


      Je vais essayer de simplifier ce que je veux:
      j'ai un classeur avec 10 feuilles dedans
      je veux que pour les feuilles 2,3,4,5,6
      pour la plage allant de L2 -> dernière ligne éditée dans les autres colonnes
      affiche un texte en rapport avec le nom la feuille active, dans toute cette plage

      par ex: si le nom de la feuille active ="AAA" alors dans L2 ->fin, la plage sectionnée
      donne le texte "STRUCTURE".


      Si ce n'est pas assez clair je réaliserai un exemple cette après midi, mais en tout cas merci de m'appuyer dans cette expérimentation
      0
    2. Pierre1310 Messages postés 8854 Statut Membre 652
       
      Mais "STRUCTURE" n'a aucune rapport avec "AAA" non?
      Ce sera mieux que tu m'envoie ton fichier Excel avec un exemple je pourrai mieux comprendre ce que tu veux.
      0
    3. Pierre1310 Messages postés 8854 Statut Membre 652
       
      Dans la feuille DEBUT rien n'est écrit, c'est normal?
      0
    4. Eldyviah Messages postés 30 Statut Membre
       
      Oui car je veux seulement du texte dans les feuilles entre début et fin
      En fonction du nom de ces feuilles
      0