Déplacer une référence sur une autre feuille

Bonjour,

Dans un document Excel, j'utilise la macro suivante. Celle-ci utilise les référence de la colonne CD 323 a cd 347 de ma feuille Suivi_2011

Par contre, losque les utilisateurs insère des ligne dans la feuille, les références de déplace et ainsi la macro ne fonctionne plus. Je dois donc supprimer des ligne de ma feuille afin de remettre les référence à leur place.

Ma question, est ce que je peux créer une autre feuille et y insérer mes références, de cette facon elles ne se déplaceraient pas.

Mon problème est que je n'arrive pas à modifier le code pour qu'il pointe sur la nouvelle feuille Ref que j,ai créé. Je suis débutante ,, bref je n'y arrive. Si quelqu'un peut me donner quelques conseils , se serait très apprécié.

Voici le code . J'ai surligné la partie que j'aimerais qui se retrouve sur la feuille Ref à la colonne A1

Merci grandement pour votre aide

Sub Transfert()

Dim DerLig As Integer, Nouveau_fichier As String, Référence As String, Référence_bis As String
Dim i As Integer, j As Integer, Feuille As Worksheet

Application.ScreenUpdating = False
Application.Dialogs(xlDialogSaveAs).Show 'création d'un nouveau fichier
Application.DisplayAlerts = False

Nouveau_fichier = ActiveWorkbook.Name

'Suppression des feuilles existantes mais inutiles
For Each Feuille In ActiveWorkbook.Worksheets
    If Feuille.Name <> "Soumissions_2011" And Feuille.Name <> "Rapport Mensuel" Then
        Feuille.Delete
    End If
Next Feuille

Sheets("Soumissions_2011").Activate

'Création de toutes feuilles utiles moins celle pour les lignes sans référence
For j = 323 To 347   
    Référence_bis = Cells(j, 82)
    Sheets("Rapport Mensuel").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = Référence_bis
    Range("F2") = Date
    Sheets("Soumissions_2011").Activate
Next

' Une feuille de plus pour les lignes sans référence dans colonne G
Sheets("Rapport Mensuel").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Sans référence"
Range("F2") = Date
Sheets("Soumissions_2011").Activate

'Report des données sans référence
Range("A7").Activate
Do While ActiveCell <> ""
    If ActiveCell.Offset(0, 6) = "" Then
        Range(ActiveCell, ActiveCell.Offset(0, 52)).Copy
        Sheets("Sans référence").Activate
        DerLig = ActiveSheet.Range("A65536").End(xlUp).Row
        If DerLig = 3 Then
            Range("A6").Activate
        Else
            Range("A" & DerLig + 1).Activate
        End If
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Sheets("Soumissions_2011").Activate
     End If
     ActiveCell.Offset(1, 0).Activate
Loop

'Report des données avec référence
Range("A7").Activate
For j = 323 To 347    
    Référence = Cells(j, 7)
    Référence_bis = Cells(j, 82)

    Do While ActiveCell <> ""
        If ActiveCell.Offset(0, 6) = Référence Then
            Range(ActiveCell, ActiveCell.Offset(0, 52)).Copy
            Sheets(Référence_bis).Activate
            DerLig = ActiveSheet.Range("A65536").End(xlUp).Row
            If DerLig = 3 Then
                Range("A6").Activate
            Else
                Range("A" & DerLig + 1).Activate
            End If
            ActiveSheet.Paste
            Application.CutCopyMode = False
            Sheets("Soumissions_2011").Activate
         End If
         ActiveCell.Offset(1, 0).Activate
    Loop
    Range("A7").Activate
Next

'Effacement des feuilles du fichier de base et des feuilles nouvellement créées mais sans données.
For Each Feuille In ActiveWorkbook.Worksheets
    If Feuille.Range("A6") = "" Then
        Feuille.Delete
    Else
        Feuille.Activate
        Range("E:E,I:I,O:O,S:S,V:V,X:X,AA:AA,AD:AD,AW:AW,AX:AX,AY:AY,AZ:AZ,BA:BA,BB:BB,BC:BC,BD:BD,BE:BE,BF:BF,BG:BG").Delete Shift:=xlToLeft
        DerLig = Range("A65536").End(xlUp).Row
        Range("A" & DerLig + 1).Activate
    End If
Next Feuille

ActiveWorkbook.Save
End Sub

Bonjour

A tester

Définis ta plage CD323:CD347 avec un nom (ExempleBase)

Menu: Insertion ---> Noms ---> Définir

Ton code deviendra

[barrer]For j = 323 To 347[/barrer]   
For j = [Base].Row To [Base].Row + [Base].Rows.Count - 1

Tu pourras insérer des lignes

Il doit y avoir plus simple mais pas trop cherché

Merci pour ta réponse, par contre , est ce que je dois définir un nom pour chaque cellule de 323 a 347 ou seulement 1 nom pour la plage entiere de 323 a 347 ?

merci

Ok, petite erreur de ma part lors de la modification du code...

Maitenant testé et fonctionnel !!! C'est exactement ce que j'avais besoin !!!

Merci beaucoup pour ton aide Banzai64 !!!!!

Rechercher des sujets similaires à "deplacer reference feuille"