Problème VBA pour insertion

Bonjour à tous,

afin d'aider quelqu'un sur le forum, j'ai créé ce code qui est sensé inserer une ligne sous toutes les cellules de la colonne A contenant le mot Total.

Sub Macro1()

End Sub

Le problème est que au lieu de m'inserer une seule ligne, il insere autant de lignes qu'il y a avant le mot Total.

Où me suis-je planté?

D'avance merci

Amicalement,

Elfi

Bonjour,

Ah... ces Select !

La solution :

Sub Macro1()
For i = [A65000].End(xlUp).Row To 1 Step -1
If Cells(i, 1) = "Total" Then Cells(i + 1, 1).EntireRow.Insert
Next i
End Sub

A+

Hello Galopin,

forcément, ça marchera mieux. Je suis un ane mais je me soigne.

Merci pour tout,

Amicalement,

Elfi

-- Jeu Oct 28, 2010 2:35 pm --

Rebonjour,

Galopin, help!

Pour améliorer tout cela, je voudrais au préalable supprimer toute les lignes dont les cellules de la colonne B sont vide. En effet, sans cela, à chaque fois que j'applique la macro initiale, une ligne vide s'insère m^me s'il y en a déjà une.

J'ai essayé ceci:

Sub insererligne()

'Supprimer la ligne si la cellule B est vide

For i = [B65000].End(xlUp).Row To 1 Step -1

If Cells(i, 1) = "" Then Cells(i, 1).EntireRow.Delete

Next i

'puis insérer une ligne après celle où total est saisie dans la cellule A

For i = [A65000].End(xlUp).Row To 1 Step -1

If Cells(i, 1) = "Total" Then Cells(i + 1, 1).EntireRow.Insert

Next i

End Sub

Ou est mon erreur d'ignare avéré?

D'avance, merci,

Elfi

-- Jeu Oct 28, 2010 3:02 pm --

OK, c'est encore moi.

A force de tatonner, je suis arrivé au résultat escompté (en l'occurence, dans l'original, les cases total sont en colonne G). Voici le code:

Sub insererligne()

'Créée par Elfi avec l'aide précieuse de Galopin du Forum

'Supprimer la ligne si la cellule F est vide

For i = [F65000].End(xlUp).Row To 1 Step -1

If Cells(i, 6) = "" Then Cells(i, 6).EntireRow.Delete

Next i

'puis insérer une ligne après celle où "Total" est saisie dans la cellule G

For i = [G65000].End(xlUp).Row To 1 Step -1

If Cells(i, 7) = "Total" Then Cells(i + 1, 7).EntireRow.Insert

Next i

End Sub

Il me reste un petit problème: les cases G concernées ne sont pas écrite "Total" mais comporte le terme en début.

Exemple: Total des petits fours Total des desserts Total des canapés .....

Comment procéder pour la macro?

Ouille Ouille, ça se complique.

A+,

Elfi

re...

Sub Test()
For i = [G65000].End(xlUp).Row To 1 Step -1
If Left(Cells(i, 7), 5) = "Total" Then Cells(i + 1, 7).EntireRow.Insert
Next i

End Sub

Mébon... Si j'ai bien compris le pb de jca est quand même bien plus compliqué que ça.

D'abord il vaudrait surement mieux rajouter une ligne avant...

Ensuite avant ou après le problème reste que le total n'intègre pas les nouvelles lignes... Il faudrait adapter les formules de totaux en conséquence. Et là... c'est un peu plus chaud !

A+

Hello Galopin,

Merci pour la solution left 5, je ne m'en rappelais plus du tout.

Pour le reste, d'après ce que m'a dit jca dans son message initial (privé car il est de chez moi), il s'agit juste d'un besoin de présentation automatique.

Je lui envoie, on verra bien.

Merci encore,

amicalement,

Elfi

Rechercher des sujets similaires à "probleme vba insertion"