Souci avec un Rows().insert

Résolu
kyoku59 Messages postés 54 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 21 septembre 2018 - 27 mai 2011 à 13:05
kyoku59 Messages postés 54 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 21 septembre 2018 - 27 mai 2011 à 19:12
Bonjour,

Je travail avec 2 sorte de tableau. Je parcours 2 colonne d'un tableau et si la cellule est rempli, je copie cette ligne pour la coller sur un autre tableau.

Mon parcours de colonne se fait trés bien et quand je rajoute mon Rows().insert le code est complétement perdu :calim2: !!!!!
Je m'explique : adepte des msgbox pour savoir si tout se passe bien, j'ai mis un msgbox pour afficher la cellule rempli, la tout va bien. Quand je rajoute mon insert, ma boucle ne tourne plus rond lol et je me rajoute 2 fois plus de lignes !!!

Extrait de mon code

Sub MAJ()

    Dim ligneTab2 As Integer
    Dim ligneAjout As Integer
    Dim lcopy As Range
    Dim lpaste As Range

    
    For ligneTab2 = Range("LigneTitreA").Row + 2 To Range("LigneFinA").Row - 1
        ligneAjout = Range("LigneFinR").Row - 1
        If Cells(ligneTab2, Range("C_Total_HT").Column) <> "" Or Cells(ligneTab2, Range("C_Total_HT").Column) <> "" Then
            'MsgBox Cells(ligneTab2, Range("C_Total_HT").Column)
            'MsgBox Range(Cells(ligneTab2, Range("C_Societe").Column), Cells(ligneTab2, Range("C_Remarques_A").Column)).Select
            Rows(ligneAjout).Insert
            'Set lcopy = Range(Cells(ligneTab2, Range("C_Societe").Column), Cells(ligneTab2, Range("C_Remarques_A").Column))
        End If
    Next
End Sub


Peut être une erreur inattention ou alors je fais une manip qui n'est pas la bonne.

Merci de votre aide

5 réponses

kyoku59 Messages postés 54 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 21 septembre 2018
27 mai 2011 à 19:12
Re
Juste pour dire que d'une part le code que j'ai mis au dessus j'ai pas mis le bon et d'autre part j'ai compris mon erreur GGGrrrrr.
Forcément si je rajoute une ligne bien plus haut toutes mes cellules descendent d'un cran.
Le boulet et encore une fois msgbox c'est utile lol
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 mai 2011 à 13:20
Bonjour,

en allant dans ce sens (du haut vers le bas) tu modifies sans cesse le nombre de lignes, leur N°, etc... et te fais des croche-pieds.

Il te faut aller dans l'autre sens dans ta boucle For ... Next (du bas vers le haut en utilisant Step -1)

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
kyoku59 Messages postés 54 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 21 septembre 2018
27 mai 2011 à 13:51
Merci je vais voir ça.
0
kyoku59 Messages postés 54 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 21 septembre 2018
27 mai 2011 à 14:12
Maintenant au lieu d'avoir plus de ligne en insert j'en ai moins car il saute 2 ligne et ne s'arrête pas au bon endroit

    For ligneTab2 = Range("LigneFinA").Row - 1 To Range("LigneTitreA").Row + 2 Step -1
        
        If Cells(ligneTab2, Range("C_Total_HT").Column) <> "" Or Cells(ligneTab2, Range("C_Total_HT").Column) <> "" Then
            MsgBox Cells(ligneTab2, Range("C_Total_HT").Column)
            'MsgBox Range(Cells(ligneTab2, Range("C_Societe").Column), Cells(ligneTab2, Range("C_Remarques_A").Column)).Select
            ligneAjout = Range("LigneFinR").Row - 1
            Rows(ligneAjout).Insert
            'Set lcopy = Range(Cells(ligneTab2, Range("C_Societe").Column), Cells(ligneTab2, Range("C_Remarques_A").Column))
        End If
    Next
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 mai 2011 à 17:57
ouvre donc déjà (ce devrait être un réflexe automatique) ton aide VBA sur la méthode Insert et tu comprendras ce qui arrive si tu n'utilises pas l'argument Shift



____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
Rejoignez-nous