Incrémentaion variable VBA
Résolu
miss_tik76
-
Miss_tik76 Messages postés 27 Statut Membre -
Miss_tik76 Messages postés 27 Statut Membre -
Bonjour,
Mon problème est le suivant :
Dans ma feuille (Donnees) et la colonne (K) j'ai plusieurs données textes.
Je veux que mon programme séléctionne uniquement les lignes où on trouve "assemblage - soudure" dans la colonne (K).
Puis que ces lignes soient copiées dans une autre feuille nommée (Charge Assemblage).
Le code que j'ai écrit si dessous séléctionne bien la première ligne où on trouve "assemblage - soudure" dans la colonne (K).
Comment dois-je incrémenter ma variable "assemblage" afin qu'il passe à la deuxième puis la troisième... jusqu'à la dernière ?
Merci pour votre aide
Mon problème est le suivant :
Dans ma feuille (Donnees) et la colonne (K) j'ai plusieurs données textes.
Je veux que mon programme séléctionne uniquement les lignes où on trouve "assemblage - soudure" dans la colonne (K).
Puis que ces lignes soient copiées dans une autre feuille nommée (Charge Assemblage).
Le code que j'ai écrit si dessous séléctionne bien la première ligne où on trouve "assemblage - soudure" dans la colonne (K).
Comment dois-je incrémenter ma variable "assemblage" afin qu'il passe à la deuxième puis la troisième... jusqu'à la dernière ?
Merci pour votre aide
donnee = "assemblage - soudure"
Do
Sheets("Donnees").Select
assemblage = Columns(11).Find(What:=donnee, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Row
Rows(assemblage).Select
Selection.Copy
Sheets("Charge Assemblage").Select
v_dligne = Range("$A$65536").End(xlUp).Address
Range(v_dligne).Offset(1, 0).Select
ActiveSheet.Paste
Sheets("Donnees").Select
Loop Until v_derniere_ligne = Range("$K$65536").End(xlUp).Address
A voir également:
- Incrémentaion variable VBA
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Msgbox vba variable ✓ - Forum VB / VBA
- Vba attendre 1 seconde ✓ - Forum VB / VBA
8 réponses
Bonjour a vous tous
une autre facon de voir
Code a mettre dans un module
Bonne suite
une autre facon de voir
Code a mettre dans un module
Sub Recherche_Copie()
Dim Col_K As Range
Dim DerligK As Integer, DerligA As Integer, Lig As Integer, Iter As Long
Dim donnee, Nb_Tr As Long
donnee = "assemblage - soudure"
Application.ScreenUpdating = False
With Worksheets("Donnees")
'Recherche derniere ligne colonne K
DerligK = .Columns("K").Find("*", , , , , xlPrevious).Row
Set Col_K = .Range("K1:K" & DerligK)
'Pour diminuer le temps de recherche
Nb_Tr = Application.CountIf(Col_K, donnee)
If Nb_Tr > 0 Then
Lig = 1
For Iter = 1 To Nb_Tr
'Recherche de la position pour copier la ligne
'xlWhole recherche une valeur exacte,
Lig = .Columns("K").Find(donnee, .Cells(Lig, "K"), , xlWhole).Row
'Ecriture ligne(s)
With Worksheets("Charge Assemblage")
'Recherche derniere ligne colonne A
DerligA = .Range("$A$65536").End(xlUp).Row
'copie de la ligne
Worksheets("Donnees").Rows(Lig).Copy .Range("A" & DerligA + 1)
End With
Next Iter
End If
End With
Application.ScreenUpdating = False
End Sub
Bonne suite
Déjà essayé mais il me prend la ligne juste en dessous et non pas la prochaine ou c'est écrit "assemblage - soudure" !
je ne me souvient plus très bien du vba mais
du genre :
for eachmarche?
du genre :
FOR EACH "assemblage - soudure" IN Sheets("Charge Assemblage")
Sheets("Donnees").Select
assemblage = Columns(11).Find(What:=donnee, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Row
Rows(assemblage).Select
Selection.Copy
Sheets("Charge Assemblage").Select
v_dligne = Range("$A$65536").End(xlUp).Address
Range(v_dligne).Offset(1, 0).Select
ActiveSheet.Paste
Sheets("Donnees").Select
NEXT
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici ce que j'ai fait mais ca ne fonctionne pas :
donnee = "assemblage - soudure"
For Each donnee In Sheets("Donnees")
While ActiveCell.Value <> ""
Sheets("Donnees").Select
assemblage = Columns(11).Find(What:=donnee, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Row
Rows(assemblage).Select
Selection.Copy
Sheets("Charge Assemblage").Select
v_dligne = Range("$A$65536").End(xlUp).Address
Range(v_dligne).Offset(1, 0).Select
ActiveSheet.Paste
Wend
Next
essais ça:
Dim c As Variant
For Each c In Range("") <- met les coordonnée de ta plage de valeur
if c.value="assemblage - soudure" then
Sheets("Donnees").Select
assemblage = Columns(11).Find(What:=donnee, LookIn:=xlFormulas,
LookAt:=xlPart, SearchOrder:=xlByColumns).Row
Rows(assemblage).Select
Selection.Copy
Sheets("Charge Assemblage").Select
v_dligne = Range("$A$65536").End(xlUp).Address
Range(v_dligne).Offset(1, 0).Select
ActiveSheet.Paste
end if
Next c