Aide macro insertion

nono le golfeur

Nouveau membre
Bonjour,

J'utilise dans un de mes Fichiers Excel un Formulaire associé a du VBA pour incorpporer les données dans le fichier et reconnaitre ou est la dernière ligne active.

Mais après insertion d'une ligne, les formules des cellules déjà présente ne sont pas copiées, je n'arrive pas à recopier les formules de ces cellules.

J'utilise la macro suivante :

[cpp]Private Sub cmdPopulate_Click()


'Find empty cell for new data
Worksheets("Orders Funnel").Activate
ActiveSheet.Range("A3").Select
CheckLine = ActiveSheet.Range("A3").Value
NextLine = 1
Tracker = 4

Do While CheckLine <> Empty
ActiveSheet.Range("A3").Offset(NextLine, 0).Select
CheckLine = ActiveSheet.Range("A" & Tracker).Value
Tracker = Tracker + 1
NextLine = NextLine + 1
Loop

Tracker = Tracker - 1

ActiveSheet.Rows(Tracker & ":" & Tracker).Select
Selection.Insert shiftXldown
[/cpp]

Merci d'avance
 

zeb

Modérateur
Lignes 19/20 (en amélioré)[fixed]ActiveSheet.Rows(Tracker & ":" & Tracker).Insert shiftXldown[/fixed]
Où vois-tu une demande de copie ?
Tu demandes d'insérer une ligne, c'est tout !
Que veux-tu copier ?
Toute la dernière ligne, seulement certaines colonnes ?
 

nono le golfeur

Nouveau membre
Lignes 19/20 (en amélioré)[fixed]ActiveSheet.Rows(Tracker & ":" & Tracker).Insert shiftXldown[/fixed]
Où vois-tu une demande de copie ?
Tu demandes d'insérer une ligne, c'est tout !
Que veux-tu copier ?
Toute la dernière ligne, seulement certaines colonnes ?

Il n'y a effectivement pas de copie de fonction car à chaque fois que je le fait tout foire....

J'aurais juste besoin de conserver la même macro qu'auparavant (qui amrche très bien) mais je voudrais que lorsque j'insere une ligne, les formules de la dernière ligne active s'insère aussi.

Avec cette macro seulement le données s'insèrent, les cellule qui normalement s'autocalcul ne le font pas...

Merci
 

zeb

Modérateur
J'aurais juste besoin de conserver la même macro qu'auparavant (qui amrche très bien)
Tu n'échapperas à des critiques en publiant du code moche (c'est mon point de vue)... Pourvu que cela te soit profitable.

Voilà ce que je te propose :
Code:
Option Explicit

Sub cmdPopulate_Click()
    Dim cell As Range
    
    ' Considérer la cellule A3 d'une feuille
    Set cell = Worksheets("Orders Funnel").Range("A3")
    
    ' Boucler tant que la cellule n'est pas vide
    Do While cell.Text <> Empty
        ' La cellule considérée est la suivante dans la colonne
        Set cell = cell.Offset(1, 0)
    Loop
    
    ' Copier
    Rows(cell.Row - 1).Copy
    ' Coller
    Rows(cell.Row).Insert shiftXldown
    ' Fin de la copie
    Application.CutCopyMode = False
    
    ' Sélection de la cellule
    cell.Worksheet.Select
    cell.Select
End Sub
En +, ça marche, même la copie :sol: A toi maintenant de bien tout comprendre.

Si je supprime les Select/Selection et autres Activate, c'est pour des problèmes de performances d'une part et d'inutilité d'autre part.
 

nono le golfeur

Nouveau membre
Je vais essayer, un grand merci en tout j'éspère que ca va aller j'en ai marre de perdre du temps, j'ai l'impression que le VBA ne m'aime pas parfois
!!!!
 

zeb

Modérateur
Mais si c'est toi qui ne lui accorde pas assez d'amour :love:, alors il boude c'est tout. :D
 

nono le golfeur

Nouveau membre
Ca doit être ça !!!

Le code marche bien merci.

Néanmoins je doit vraiment être mauvais en français, car en fait, j'utilise une form pour insérer une ligne et avec les valeur qu'on rentre dans la form. Tout ca fonctionne.

Mais dans la nouvelle ligne qui vient d'être insérer avec les valeurs que l'ont a remplis dans la form les formules de la dernière ligne active ne sont pas recopié.

En gros j'insère toutes mes données à l'aide ce formulaire qui insère une ligne automatiquement mais après je doit copier coller des formules dans certains cellule pour que les calculs se fassent !!

Promis je vais lui donner de l'aour au Vb si toutefois ça peut me faire avancer !!!
 

nono le golfeur

Nouveau membre
BHa ca marche pas si bien que ca en fait, j'ai encore pas mal de code après et du coup ca foire.

J'aimerai juste, si qq à la solution, rajouter qq chose dans mon code pour copier les formules de la dernière ligne active dans ma ligne insérée.

[cpp]Private Sub cmdPopulate_Click()


'Find empty cell for new data
Worksheets("Orders Funnel").Activate
ActiveSheet.Range("A3").Select
CheckLine = ActiveSheet.Range("A3").Value
NextLine = 1
Tracker = 4

Do While CheckLine <> Empty
ActiveSheet.Range("A3").Offset(NextLine, 0).Select
CheckLine = ActiveSheet.Range("A" & Tracker).Value
Tracker = Tracker + 1
NextLine = NextLine + 1
Loop

Tracker = Tracker - 1

ActiveSheet.Rows(Tracker & ":" & Tracker).Select
Selection.Insert shiftXldown
[/cpp]

 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 131
Messages
6 717 988
Membres
1 586 386
Dernier membre
aviateurdesairs
Partager cette page
Haut