Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour chacune
des variables rencontrées, la variable est filtrée et le résultat copié dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes les
variables de mon tableau et là tout s'arrête alors que je souhaiterais que
la boucle continue même si une ou plusieurs variables n'existent pas dans la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour chacune
des variables rencontrées, la variable est filtrée et le résultat copié dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes les
variables de mon tableau et là tout s'arrête alors que je souhaiterais que
la boucle continue même si une ou plusieurs variables n'existent pas dans la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour chacune
des variables rencontrées, la variable est filtrée et le résultat copié dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes les
variables de mon tableau et là tout s'arrête alors que je souhaiterais que
la boucle continue même si une ou plusieurs variables n'existent pas dans la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour chacune
des variables rencontrées, la variable est filtrée et le résultat copié dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes les
variables de mon tableau et là tout s'arrête alors que je souhaiterais que
la boucle continue même si une ou plusieurs variables n'existent pas dans la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour chacune
des variables rencontrées, la variable est filtrée et le résultat copié dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes les
variables de mon tableau et là tout s'arrête alors que je souhaiterais que
la boucle continue même si une ou plusieurs variables n'existent pas dans la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour chacune
des variables rencontrées, la variable est filtrée et le résultat copié dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes les
variables de mon tableau et là tout s'arrête alors que je souhaiterais que
la boucle continue même si une ou plusieurs variables n'existent pas dans la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour Cracam.lemans
Nous avons été coupé, je reprends
Il faut faire 2 boucles tout simplement et éventuellement sortir un
message
si tu ne trouve pas dans le tableau
For Each macell In Worksheets("resultats").Range(base)
for i = 0 to 12
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
End If
next i
Next macell
--
Papyjac
"crcam.lemans" a écrit :Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour chacune
des variables rencontrées, la variable est filtrée et le résultat copié
dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes
les
variables de mon tableau et là tout s'arrête alors que je souhaiterais
que
la boucle continue même si une ou plusieurs variables n'existent pas dans
la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour Cracam.lemans
Nous avons été coupé, je reprends
Il faut faire 2 boucles tout simplement et éventuellement sortir un
message
si tu ne trouve pas dans le tableau
For Each macell In Worksheets("resultats").Range(base)
for i = 0 to 12
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
End If
next i
Next macell
--
Papyjac
"crcam.lemans" a écrit :
Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour chacune
des variables rencontrées, la variable est filtrée et le résultat copié
dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes
les
variables de mon tableau et là tout s'arrête alors que je souhaiterais
que
la boucle continue même si une ou plusieurs variables n'existent pas dans
la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour Cracam.lemans
Nous avons été coupé, je reprends
Il faut faire 2 boucles tout simplement et éventuellement sortir un
message
si tu ne trouve pas dans le tableau
For Each macell In Worksheets("resultats").Range(base)
for i = 0 to 12
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
End If
next i
Next macell
--
Papyjac
"crcam.lemans" a écrit :Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour chacune
des variables rencontrées, la variable est filtrée et le résultat copié
dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes
les
variables de mon tableau et là tout s'arrête alors que je souhaiterais
que
la boucle continue même si une ou plusieurs variables n'existent pas dans
la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour Papyjac et merci.
J'avais oublié de préciser que la variable se rencontrait x fois. Ta
solution serait idéale si la variable se rencontrait une seule fois.
J'ai essayé de contourner le problème en utilisant la gestion des erreurs
mais elle marche une fois puis est désactivée.
Je fais donc appel à nouveau aux pros : comment faire pour que i passe à
la variable suivante dès qu'elle a été traité une fois ou comment
réactiver la gestion des erreurs.
Ci-dessous mon exemple :
For Each macell In Worksheets("resultats").Range(base)
For i = 0 To 12
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
On Error GoTo ligne1
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
End If
GoTo fin
ligne1:
Application.DisplayAlerts = False
ActiveSheet.Delete
GoTo fin
fin:
Next i
Merci à tous pour votre aide.
Jocelyne
"Papyjac" a écrit dans le message de
news:Bonjour Cracam.lemans
Nous avons été coupé, je reprends
Il faut faire 2 boucles tout simplement et éventuellement sortir un
message
si tu ne trouve pas dans le tableau
For Each macell In Worksheets("resultats").Range(base)
for i = 0 to 12
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
End If
next i
Next macell
--
Papyjac
"crcam.lemans" a écrit :Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour
chacune
des variables rencontrées, la variable est filtrée et le résultat copié
dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes
les
variables de mon tableau et là tout s'arrête alors que je souhaiterais
que
la boucle continue même si une ou plusieurs variables n'existent pas
dans la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour Papyjac et merci.
J'avais oublié de préciser que la variable se rencontrait x fois. Ta
solution serait idéale si la variable se rencontrait une seule fois.
J'ai essayé de contourner le problème en utilisant la gestion des erreurs
mais elle marche une fois puis est désactivée.
Je fais donc appel à nouveau aux pros : comment faire pour que i passe à
la variable suivante dès qu'elle a été traité une fois ou comment
réactiver la gestion des erreurs.
Ci-dessous mon exemple :
For Each macell In Worksheets("resultats").Range(base)
For i = 0 To 12
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
On Error GoTo ligne1
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
End If
GoTo fin
ligne1:
Application.DisplayAlerts = False
ActiveSheet.Delete
GoTo fin
fin:
Next i
Merci à tous pour votre aide.
Jocelyne
"Papyjac" <Papyjac@discussions.microsoft.com> a écrit dans le message de
news: A5A94662-DED0-4C29-A24B-4EF5F76E14EC@microsoft.com...
Bonjour Cracam.lemans
Nous avons été coupé, je reprends
Il faut faire 2 boucles tout simplement et éventuellement sortir un
message
si tu ne trouve pas dans le tableau
For Each macell In Worksheets("resultats").Range(base)
for i = 0 to 12
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
End If
next i
Next macell
--
Papyjac
"crcam.lemans" a écrit :
Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour
chacune
des variables rencontrées, la variable est filtrée et le résultat copié
dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes
les
variables de mon tableau et là tout s'arrête alors que je souhaiterais
que
la boucle continue même si une ou plusieurs variables n'existent pas
dans la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell
Bonjour Papyjac et merci.
J'avais oublié de préciser que la variable se rencontrait x fois. Ta
solution serait idéale si la variable se rencontrait une seule fois.
J'ai essayé de contourner le problème en utilisant la gestion des erreurs
mais elle marche une fois puis est désactivée.
Je fais donc appel à nouveau aux pros : comment faire pour que i passe à
la variable suivante dès qu'elle a été traité une fois ou comment
réactiver la gestion des erreurs.
Ci-dessous mon exemple :
For Each macell In Worksheets("resultats").Range(base)
For i = 0 To 12
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
On Error GoTo ligne1
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
End If
GoTo fin
ligne1:
Application.DisplayAlerts = False
ActiveSheet.Delete
GoTo fin
fin:
Next i
Merci à tous pour votre aide.
Jocelyne
"Papyjac" a écrit dans le message de
news:Bonjour Cracam.lemans
Nous avons été coupé, je reprends
Il faut faire 2 boucles tout simplement et éventuellement sortir un
message
si tu ne trouve pas dans le tableau
For Each macell In Worksheets("resultats").Range(base)
for i = 0 to 12
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
End If
next i
Next macell
--
Papyjac
"crcam.lemans" a écrit :Bonjour,
Je vous expose mon problème. J'ai créé une variable tableau. Pour
chacune
des variables rencontrées, la variable est filtrée et le résultat copié
dans
une feuille nommée du même nom que la variable ceci grâce à une boucle.
Le problème est que ma base de données ne comporte pas toujours toutes
les
variables de mon tableau et là tout s'arrête alors que je souhaiterais
que
la boucle continue même si une ou plusieurs variables n'existent pas
dans la
base de données.
Merci d'avance pour votre aide.
Ci-dessous le texte que j'ai utilisé.
Dim tabl(13) As Variant
tabl(0) = "721040"
tabl(1) = "721035"
tabl(2) = "721030"
tabl(3) = "721020"
tabl(4) = "721019"
tabl(5) = "721016"
tabl(6) = "721013"
tabl(7) = "721011"
tabl(8) = "721005"
tabl(9) = "721004"
tabl(10) = "721003"
tabl(11) = "721002"
tabl(12) = "721001"
Dim i As Integer
i = 0
Dim macell As Range
Dim resugm As Range
Dim donugm As Range
Dim nomugm As Range
Selection.CurrentRegion.Select
base = Selection.Address
Rem tri des données par ordre décroissant des UGM (important +++)
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A18"), Order1:=xlDescending,
Header:=xlGuess
Rem début de la boucle
For Each macell In Worksheets("resultats").Range(base)
If macell.Text = tabl(i) Then
Worksheets("resultats").Range("A18").AutoFilter Field:=1,
Criteria1:=tabl(i)
Sheets.Add.Name = tabl(i)
Set resugm = Sheets(tabl(i)).Range("A1")
Set donugm = Worksheets("resultats").AutoFilter.Range
donugm.Copy resugm
Call miseenformeugm
i = i + 1
If (i > 13) Then
Exit Sub
End If
End If
Next macell