Selection.Autofill en ref relative

Bonjour @ tous

Revoici la KichE aka Théodore.

J'ai ici un petit bout de code pour insérer une ligne dans un tableau.

L'idée est d'aller à la dernière ligne remplie, puis de descendre de 1 ligne puis d'insérer ma ligne là.

Le truc c'est que j'ai plusieurs cellules avec des formules donc je veux sélectionner la ligne du dessous (celle qui avait les formules et qui a été repoussée) et "tirer les formules".

Voici:

Sub ajouter_lignes()
Range("A25").Select
    Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        Selection.EntireRow.Insert
            ActiveCell.Offset(1, 0).Select
            Selection.EntireRow.Select
                Range(Selection, Selection.EntireRow).Select
                Selection.AutoFill Destination:=Range("XXX"), Type:=xlFillDefault
                Range("XXX").Select
    ActiveCell.Select
End Sub

Je bloque au niveau du range de destination, je ne sais pas comment écrire ça en ref relative.

Merci de vos contributions.

Théodore

Bonsoir,

Il faudrait savoir dans quelles colonnes se trouvent les formules,

de sorte à effacer les autres données de la ligne,

Peux-tu joindre une ligne exemple

Amicalement

Claude

Voici le fichier (en mode exemple).

J'ai des formules (genre rechercheV, somme.si...) dans les colonnes E,G,Q,R et S, des menues déroulants avec données > validation en colonne E et F et aussi des mise en forme conditionnelles dans presque toutes les colonnes.

Merci de ton aide.

Théodore

33registre-forum.zip (6.41 Ko)

Bonjour,

Essaie avec ce code :

Sub Macro1()
Dim DerLig As Long
DerLig = [A65000].End(xlUp).Row
Cells(DerLig, 1).Resize(1, 19).AutoFill Destination:=Cells(DerLig, 1).Resize(2, 19), Type:=xlFillDefault
Cells(DerLig + 1, 2).Resize(1, 18).SpecialCells(xlConstants).ClearContents
End Sub

Bon dimanche

Bonjour à tous,

Pour respecter la couleur (1 ligne sur 2)

Sub InsertLigne()
Dim Lg%, LgA%
'Macro par Claude Dubois pour "UltrA_KichE" Excel-Pratique le 22/08/10
    LgA = Range("A65536").End(xlUp).Row
    Lg = Range("Q65536").End(xlUp).Row

    If LgA < Lg Then MsgBox ("remplir la dernière ligne !"): Exit Sub
    Rows(Lg - 1).Copy
    Lg = Lg + 1
    Rows(Lg).Insert
    Range("a" & Lg & ":f" & Lg & ",h" & Lg & ":p" & Lg).ClearContents
End Sub

Salut cousinhub

Bonne journée

Claude

23ultra-kiche.zip (14.21 Ko)

Bonjour

J'ai testé dans tous les sens, mais ça ne marche pas (ou partiellement):

  • dans le fichier test que j'ai mis ça marche mais dons mon fichier ça m'ajoute des lignes au dessus des 2 dernière lignes remplies...
  • certaines formules sont quand même effacées...

Voici les formules au j'ai:

  • en E j'ai une liste déroulante avec Oui ou NON comme choix, plus =SI($E34<>"";SI($E34<>$E$2;$F$3;"");"") (cette colonne s'appelle F en vrai)
  • en G j'ai =SI($G34<>"";RECHERCHEV($G34;$G$2:$H$22;2;FAUX);"") (colonne H en fait)

De plus la méthode qui consiste à partir du bas et faire end(xlup) ne marche que s'il n'y a rien sous le tableau: malheureusement il y a plusieurs mini tableaux de somme et tout...

Donc à certaines colonnes ça marche et d'autres ça marche pas...

Comment faire ?

Théodore

re,

1) Supprime les 4 ou 5 lignes non utilisées (sous le grand tableau)

2) vérifie les formules des 2 dernières lignes

et essaye avec :

Sub InsertLigne()
Dim Lg%, LgA%
'Macro par Claude Dubois pour "UltrA_KichE" Excel-Pratique le 22/08/10
    LgA = Range("A2").End(xlDown).Row
    Lg = Range("Q2").End(xlDown).Row

    If LgA < Lg Then MsgBox ("remplir la dernière ligne !"): Exit Sub
    Rows(Lg - 1).Copy
    Rows(Lg + 1).Insert
    Application.CutCopyMode = False
    Range(Cells(Lg + 1, 1), Cells(Lg + 1, 19)).SpecialCells(xlConstants).ClearContents
End Sub

çà doit marcher !

Claude

Bonjour,

que devient ce fil ?

Rechercher des sujets similaires à "selection autofill ref relative"