Macro chercher valeurs dans plusieurs onglets
Résolu/Fermé
pierrot_42
Messages postés
37
Date d'inscription
jeudi 23 juin 2011
Statut
Membre
Dernière intervention
8 décembre 2022
-
Modifié par pierrot_42 le 30/06/2011 à 15:53
pierrot_42 Messages postés 37 Date d'inscription jeudi 23 juin 2011 Statut Membre Dernière intervention 8 décembre 2022 - 1 juil. 2011 à 16:35
pierrot_42 Messages postés 37 Date d'inscription jeudi 23 juin 2011 Statut Membre Dernière intervention 8 décembre 2022 - 1 juil. 2011 à 16:35
A voir également:
- Macro chercher valeurs dans plusieurs onglets
- Restaurer onglets chrome - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro recorder - Télécharger - Confidentialité
2 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
30 juin 2011 à 21:15
30 juin 2011 à 21:15
Le code ci-dessus est différent de celui du message d'erreur !
Le message dit bien ce qu'il faut dire :
La variable I est déjà utilisée ! (dans la boucle For I=1 to 4)
Et ci-dessus, la variable aze (qui remplace le premier I) n'est pas déclarée, il manque Dim aze as Integer
Le message dit bien ce qu'il faut dire :
La variable I est déjà utilisée ! (dans la boucle For I=1 to 4)
Et ci-dessus, la variable aze (qui remplace le premier I) n'est pas déclarée, il manque Dim aze as Integer
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
1 juil. 2011 à 14:17
1 juil. 2011 à 14:17
Essaie ce code :
Option Explicit
Sub perfect_steering()
Dim aze As Integer
Dim I As Integer
Dim J As Long
Dim K As Byte
Dim Lg As Long
Dim Msg As String
Dim ColDep
Dim ColFin
ColDep = Array(7, 37, 49, 52)
ColFin = Array(36, 48, 51, 63)
For aze = 1 To 4
Lg = 4
If Range("B" & Lg) <> "" Then
Lg = Range("B" & Rows.Count).End(xlUp).Row
End If
With Worksheets(aze)
For J = 14 To .Range("A" & .Rows.Count).End(xlUp).Row
For K = 0 To UBound(ColDep)
Msg = ""
For I = ColDep(K) To ColFin(K)
If .Cells(J, I) <> "" And UCase(.Cells(J, I)) <> "OK" And UCase(.Cells(J, I)) <> "KO" Then
Msg = Msg & .Cells(J, I) & ","
End If
Next I
If Len(Msg) > 0 Then
Cells(Lg, 2 + K) = Left(Msg, Len(Msg) - 1)
End If
Next K
Lg = Lg + 1
Next J
End With
Next aze
Columns("B:E").AutoFit
End Sub
Je pars en Week End, je n'ai pas le temps de simplifier tout ça.
Option Explicit
Sub perfect_steering()
Dim aze As Integer
Dim I As Integer
Dim J As Long
Dim K As Byte
Dim Lg As Long
Dim Msg As String
Dim ColDep
Dim ColFin
ColDep = Array(7, 37, 49, 52)
ColFin = Array(36, 48, 51, 63)
For aze = 1 To 4
Lg = 4
If Range("B" & Lg) <> "" Then
Lg = Range("B" & Rows.Count).End(xlUp).Row
End If
With Worksheets(aze)
For J = 14 To .Range("A" & .Rows.Count).End(xlUp).Row
For K = 0 To UBound(ColDep)
Msg = ""
For I = ColDep(K) To ColFin(K)
If .Cells(J, I) <> "" And UCase(.Cells(J, I)) <> "OK" And UCase(.Cells(J, I)) <> "KO" Then
Msg = Msg & .Cells(J, I) & ","
End If
Next I
If Len(Msg) > 0 Then
Cells(Lg, 2 + K) = Left(Msg, Len(Msg) - 1)
End If
Next K
Lg = Lg + 1
Next J
End With
Next aze
Columns("B:E").AutoFit
End Sub
Je pars en Week End, je n'ai pas le temps de simplifier tout ça.
pierrot_42
Messages postés
37
Date d'inscription
jeudi 23 juin 2011
Statut
Membre
Dernière intervention
8 décembre 2022
1 juil. 2011 à 16:35
1 juil. 2011 à 16:35
Ca marche, un grand merci Patrice, de ma part (et de celle de mes collègues ^^)
Bon week end à toi !
Crdt,
Pierrot
Bon week end à toi !
Crdt,
Pierrot
Modifié par Patrice33740 le 30/06/2011 à 21:34