Incrémentaion variable VBA
Résolu/Fermé
miss_tik76
-
13 sept. 2012 à 14:52
Miss_tik76 Messages postés 26 Date d'inscription dimanche 3 août 2008 Statut Membre Dernière intervention 23 janvier 2014 - 13 sept. 2012 à 16:51
Miss_tik76 Messages postés 26 Date d'inscription dimanche 3 août 2008 Statut Membre Dernière intervention 23 janvier 2014 - 13 sept. 2012 à 16:51
A voir également:
- Incrémentaion variable VBA
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba msgbox variable ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
8 réponses
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 711
13 sept. 2012 à 16:45
13 sept. 2012 à 16:45
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
borisdu
Messages postés
1824
Date d'inscription
samedi 24 décembre 2005
Statut
Membre
Dernière intervention
27 octobre 2014
229
13 sept. 2012 à 14:59
13 sept. 2012 à 14:59
assemblage = assemblage +1?
Miss_tik76
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
1
13 sept. 2012 à 15:04
13 sept. 2012 à 15:04
Déjà essayé mais il me prend la ligne juste en dessous et non pas la prochaine ou c'est écrit "assemblage - soudure" !
borisdu
Messages postés
1824
Date d'inscription
samedi 24 décembre 2005
Statut
Membre
Dernière intervention
27 octobre 2014
229
13 sept. 2012 à 15:39
13 sept. 2012 à 15:39
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
Miss_tik76
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
1
13 sept. 2012 à 15:48
13 sept. 2012 à 15:48
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
Miss_tik76
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
1
13 sept. 2012 à 15:49
13 sept. 2012 à 15:49
Il beug dès la ligne :
For Each donnee In Sheets("Donnees")
borisdu
Messages postés
1824
Date d'inscription
samedi 24 décembre 2005
Statut
Membre
Dernière intervention
27 octobre 2014
229
13 sept. 2012 à 16:14
13 sept. 2012 à 16:14
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
Miss_tik76
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
1
13 sept. 2012 à 16:51
13 sept. 2012 à 16:51
Merci à vous deux ;) !!!
Ca fonctionne avec la solution de f894009
Merci encore
Ca fonctionne avec la solution de f894009
Merci encore