Se connecter avec
S'enregistrer | Connectez-vous

Souci avec un Rows().insert

Dernière réponse : dans Programmation

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

  1. Sub MAJ()
  2.  
  3. Dim ligneTab2 As Integer
  4. Dim ligneAjout As Integer
  5. Dim lcopy As Range
  6. Dim lpaste As Range
  7.  
  8.  
  9. For ligneTab2 = Range("LigneTitreA").Row + 2 To Range("LigneFinA").Row - 1
  10. ligneAjout = Range("LigneFinR").Row - 1
  11. If Cells(ligneTab2, Range("C_Total_HT").Column) <> "" Or Cells(ligneTab2, Range("C_Total_HT").Column) <> "" Then
  12. 'MsgBox Cells(ligneTab2, Range("C_Total_HT").Column)
  13. 'MsgBox Range(Cells(ligneTab2, Range("C_Societe").Column), Cells(ligneTab2, Range("C_Remarques_A").Column)).Select
  14. Rows(ligneAjout).Insert
  15. 'Set lcopy = Range(Cells(ligneTab2, Range("C_Societe").Column), Cells(ligneTab2, Range("C_Remarques_A").Column))
  16. End If
  17. Next
  18. End Sub


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

Merci de votre aide

Autres pages sur : souci rows insert

Lassé par la pub ? Créez un compte
Expert Programmation

Salut,

Citation :
adepte des msgbox pour savoir si tout se passe bien
Toi, je t'aime :love:  J'ai fait un topic rien que pour expliquer aux autres comment faire : http://www.presence-pc.com/forum/ppc/Programmation/tuto...

Citation :
Peut être une erreur inattention ou alors je fais une manip qui n'est pas la bonne.
Tu t'y prends mal. Des indices de tableaux varient, c'est pour ça que c'est la chienlit. C'est marrant, j'ai aussi fait un topic, mais pour l'expliquer à toi : http://www.presence-pc.com/forum/ppc/Programmation/tuto... . Je me base sur la suppression des lignes, mais le principe est le même pour l'ajout, et la solution proposée est la même elle aussi
:) 

Merci Zeb.

lol pour les msgbox :lol: 

J'ai donc effectué mon parcours de colonne du bas vers le haut. Dès que les conditions sont bonne je dis de rajoute une ligne à tel endroit mais celui ci ne s’exécute pas encore correctement quant je rajoute ma ligne insert.
Je m'explique, maintenant il me fait un saut de 2 lignes et l'indice de mon parcours ne s'arrête pas au bon endroit !?! :pt1cable: .

Mon but est d'ajouter une ligne du tableau 2 vers le tableau 1 quand celui ci rempli les conditions (à savoir une cellule non vide). Pour cela j'ai une variable qui contient la ligne ou je veut faire mon insert de ligne
  1. ligneAjout = Range("LigneFinR").Row - 1

par la suite je supprimerai la ligne d'origine...

Ma boucle ressemble maintenant à ceci :
  1. For ligneTab2 = Range("LigneTitreA").Row + 2 To Range("LigneFinA").Row - 1
  2. ligneAjout = Range("LigneFinR").Row - 1
  3. If Cells(ligneTab2, Range("C_Total_HT").Column) <> "" Or Cells(ligneTab2, Range("C_Total_HT").Column) <> "" Then
  4. 'MsgBox Cells(ligneTab2, Range("C_Total_HT").Column)
  5. 'MsgBox Range(Cells(ligneTab2, Range("C_Societe").Column), Cells(ligneTab2, Range("C_Remarques_A").Column)).Select
  6. Rows(ligneAjout).Insert
  7. 'Set lcopy = Range(Cells(ligneTab2, Range("C_Societe").Column), Cells(ligneTab2, Range("C_Remarques_A").Column))
  8. End If
  9. Next

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 crant.
Le boulet et encore une fois msgbox c'est utile lol
Lassé par la pub ? Créez un compte