EXCEL VBA - Insertion de ligne a ref. variabl
Résolu
Pyvoudelet
Messages postés
169
Date d'inscription
Statut
Membre
Dernière intervention
-
Pyvoudelet Messages postés 169 Date d'inscription Statut Membre Dernière intervention -
Pyvoudelet Messages postés 169 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
JE voudrais savoir comment avec du code, on peut retrouver une valeur précise dans une colonne....
A partir du choix d une valeur dans une cellule, il faudrait pouvoir retrouver le tableau correspondant dans une autre feuille de calcul, et y inserer des infos. LE probleme c Est qu a chaque ajout, la valeur des lignes vont changer a chaque fois. Au début j'avais écrit pour la macro du bouton "save":
If Sheets("Feuil2").Range("A6").Value = "Argentina" Then
Sheets("Feuil1").Rows(11).EntireRow.Insert
Sheets("Feuil2").Range("A6:F6").Copy
Sheets("Feuil1").Range("A11").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Else
Sheets("Feuil1").Rows(16).EntireRow.Insert
Sheets("Feuil2").Range("A6:F6").Copy
Sheets("Feuil1").Range("A16").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End if
Mais le probleme c est que toutes ces reference de lignes change a chaque fois ....... comment faire...??
--
Bienheureux ceux qui savent rire d'eux mêmes: ils n'ont pas finis de s'amuser!
JE voudrais savoir comment avec du code, on peut retrouver une valeur précise dans une colonne....
A partir du choix d une valeur dans une cellule, il faudrait pouvoir retrouver le tableau correspondant dans une autre feuille de calcul, et y inserer des infos. LE probleme c Est qu a chaque ajout, la valeur des lignes vont changer a chaque fois. Au début j'avais écrit pour la macro du bouton "save":
If Sheets("Feuil2").Range("A6").Value = "Argentina" Then
Sheets("Feuil1").Rows(11).EntireRow.Insert
Sheets("Feuil2").Range("A6:F6").Copy
Sheets("Feuil1").Range("A11").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Else
Sheets("Feuil1").Rows(16).EntireRow.Insert
Sheets("Feuil2").Range("A6:F6").Copy
Sheets("Feuil1").Range("A16").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End if
Mais le probleme c est que toutes ces reference de lignes change a chaque fois ....... comment faire...??
--
Bienheureux ceux qui savent rire d'eux mêmes: ils n'ont pas finis de s'amuser!
3 réponses
-
Bonjour
Option Explicit Sub inserer_svt_plant() Dim plant As String plant = Sheets(2).Range("A6") With Sheets(1) lig = .Columns("A").Find(plant, .Range("A1"), xlValues).Row + 3 Rows(lig).Insert Shift:=xlDown .Range(.Cells(lig, "A"), .Cells(lig, "F")) = Sheets(2).Range("A6:F6").Value End With End Sub
demo
http://www.cijoint.fr/cjlink.php?file=cj201102/cijYvVqExA.xlsm
Michel -
excusez moi j ai oublier de vous mettre le fichier joint!! le voici!
http://www.cijoint.fr/cjlink.php?file=cj201102/cijai5GYI8.xlsx
merci encore -
J ai essayer de simplifier la boucle with, et ça marche bien aussi sans :
Plant_Name = Sheets(2).Range("D12").Value
d = Sheets(1).Columns("A").Find(Plant_Name).Row + 3
Sheets(1).Rows(d).EntireRow.Insert
Sheets(2).Range("D12").Copy
Sheets(1).Range("A" & d).PasteSpecial Paste:=xlPasteValues
MErci pour votre aide!
NB: les ref ci dessus n'ont plus rien a voir avec le fichier partagé!..)
-
Bonjour,
"With- End with" n'est pas une boucle mais un bloc
et il faut autant que possible éviter les copy-paste
la dessus démo
https://www.cjoint.com/?3cuiVbgwcXX
je pars en rando : je te donnerai des adresses de tutos ce soir ou demain matin -
-
-