Excel VBA find() dans une ligne variable
bibiman23
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à récupérer le n° de colonne d'une donnée dans une ligne, où le numéro est passé en tant que variable (i).
sub test ()
Dim wa As Workbook
Dim wsource201 As Worksheet
Set wa = Workbooks("toto.xls")
Set ws201 = wa.Worksheets("titi")
For i = 1 To 1000
code_transaction = ws201.Cells(i, col_source_Transaction).Value
ligne_source_transaction = ws201.Range(Cells(i, 11), Cells(i, 100))
col_source_saisie = ligne_source_transaction.Find(What:=Saisie, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns).Column
je suis sûr qu'il y a des méthodes avec active cells, mais j'y arrive pas..
Merci d'avance!
Je cherche à récupérer le n° de colonne d'une donnée dans une ligne, où le numéro est passé en tant que variable (i).
sub test ()
Dim wa As Workbook
Dim wsource201 As Worksheet
Set wa = Workbooks("toto.xls")
Set ws201 = wa.Worksheets("titi")
For i = 1 To 1000
code_transaction = ws201.Cells(i, col_source_Transaction).Value
ligne_source_transaction = ws201.Range(Cells(i, 11), Cells(i, 100))
col_source_saisie = ligne_source_transaction.Find(What:=Saisie, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns).Column
je suis sûr qu'il y a des méthodes avec active cells, mais j'y arrive pas..
Merci d'avance!
A voir également:
- Excel VBA find() dans une ligne variable
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Partager photos en ligne - Guide
- Word et excel gratuit - Guide
1 réponse
Utiliser ActivCell n'est pas une bonne idée !
Il y a une erreur dans ton code, il faut écrire :
Set ligne_source_transaction = ws201.Range(Cells(i, 11), Cells(i, 100))
ou directement :
col_source_saisie = ws201.Range(Cells(i, 11), Cells(i, 100)).Find(What:=Saisie, LookIn:=xlFormulas, LookAt:=xlWhole).Column
Il y a une erreur dans ton code, il faut écrire :
Set ligne_source_transaction = ws201.Range(Cells(i, 11), Cells(i, 100))
ou directement :
col_source_saisie = ws201.Range(Cells(i, 11), Cells(i, 100)).Find(What:=Saisie, LookIn:=xlFormulas, LookAt:=xlWhole).Column
Option Explicit
Cela éviterais les très nombreuses erreurs que tu fais sur tes variables !!!
Patrice