Bonsoir les Xldiens et les Xldiennes,
Bonsoir eaquued, Jeanpierre et Sylvie,
re bonsoir tout le monde après tout ce silence, mais changement de boulot et problème pour faire avancer mon projet de M....
J'ai appliquer la formule de TI super ça a marché merci
Sylvie je te fais une grosse bise par internet
)
En utilisant la formule de TI j'ai compris le résultat bizzarre que j'avais avec le calcul que tu m'as proposé
jeanpierre: arrondi sur arrondi le resultat se melange un peu les pinceaux. Merci à toi pour la formule.
Maintenant Je vous explique mon problème.
J'ai un classeur contenant 3 feuilles:
- 1 s'appelant 'Ville' avec 35250 lignes et 9 colonnes
- 1 s'appelant 'Insee' avec 38956 lignes et 5 colonnes
- 1 s'appelant 'Global' qui contiendra 38956 lignes et 10 colonnes
Voici le code de ma macro:
Sub Macro1()
Dim i As Long
Dim j As Long
Dim z As Long
i = 2
j = 2
z = 2
While j < 38648
If Sheets('ville').Range('A' & i).Value = Sheets('insee').Range('A' & j).Value Then
Sheets('Global').Range('A' & j) = Sheets('insee').Range('A' & j).Value
Sheets('Global').Range('B' & j) = Sheets('insee').Range('B' & j).Value
Sheets('Global').Range('C' & j) = Sheets('ville').Range('C' & i).Value
Sheets('Global').Range('D' & j) = Sheets('insee').Range('D' & j).Value
Sheets('Global').Range('E' & j) = Sheets('insee').Range('E' & j).Value
Sheets('Global').Range('F' & j) = Sheets('ville').Range('F' & i).Value
Sheets('Global').Range('G' & j) = Sheets('ville').Range('G' & i).Value
Sheets('Global').Range('H' & j) = Sheets('ville').Range('H' & i).Value
Sheets('Global').Range('I' & j) = Sheets('ville').Range('I' & i).Value
Sheets('Global').Range('J' & j) = Sheets('ville').Range('J' & i).Value
i = i + 1
If i = 27671 Then MsgBox ('i=' & i & ', j=' & j)
Else
If Sheets('ville').Range('A' & i).Value <> Sheets('insee').Range('A' & j).Value Then
Sheets('Global').Range('A' & j) = Sheets('insee').Range('A' & j).Value
Sheets('Global').Range('B' & j) = Sheets('insee').Range('B' & j).Value
Sheets('Global').Range('C' & j) = Sheets('insee').Range('C' & j).Value
Sheets('Global').Range('D' & j) = Sheets('insee').Range('D' & j).Value
Sheets('Global').Range('E' & j) = Sheets('insee').Range('E' & j).Value
End If
End If
j = j + 1
Wend
For z = 38648 To 38956
Sheets('Global').Range('A' & z) = Sheets('insee').Range('A' & z).Value
Sheets('Global').Range('B' & z) = Sheets('insee').Range('B' & z).Value
Sheets('Global').Range('C' & z) = Sheets('insee').Range('C' & z).Value
Sheets('Global').Range('D' & z) = Sheets('insee').Range('D' & z).Value
Sheets('Global').Range('E' & z) = Sheets('insee').Range('E' & z).Value
Next z
MsgBox ('i=' & i & ', j=' & j & ', z=' & z)
End Sub
Cette macro devrais, en théorie, me créer le contenu de la feuille 'Global' contenant des valeurs contenues dans chacunes des feuilles 'Ville' et 'Insee'.
Dans la feuille 'Ville' il y a 35250 lignes mais avec ma macro la valeur maximum de i ne depasse pas 27671.
Donc la feuille 'Global' ne se remplit pas correctement.
Je n'y comprends strictement rien.
Je ne peux pas vous joindre le fichier Excel car il fait 18Mo.
Quand i=27671 j=30289
Si vous arrivez à m'expliquer le Pb ce serait super car j'en perds mon latin
Merci d'avance
Oups:
Bonjour tout le monde.
J'ai oublié de vous expliquer le pourquoi du fichier joint.
Voici un extrait de ma feuille Excel avec l'endroit ou la variable i reste bloquée à 27671
[file name=ExtraitCP.zip size=6145]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ExtraitCP.zip[/file]
Message édité par: Caponord38, à: 24/09/2005 10:48