Incrémentaion variable VBA
Résolu
miss_tik76
-
Miss_tik76 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Miss_tik76 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
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
- Incompatibilité de type vba ✓ - Forum Programmation
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Excel compter cellule couleur sans vba - Guide
- 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