Incrémenter l'Offset

  • Initiateur de la discussion Initiateur de la discussion ker92
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

ker92

Guest
Bonjour à tous!
J'ai créé une macro qui cherche une valeur dans un tableau et qui la réccupère pour la mettre dans un autre tableau.
Ici j'ai différentes compagnies (exxon, total, shell...) et leur parts de marché dans 48 pays. Ma macro cherche en premier le nom "chevron" dans un classeur et copie la valeur correspondante dans un autre classeur et ainsi de suite pour chaques compagnies pétrolières.
Le problème est que je ne peut utiliser cette macro que pour un seul pays, ensuite il faut que j'augmente l'Offset:
maCellule.Offset(1, 0) = c.Offset(0, 1).Value puis maCellule.Offset(2, 0) = c.Offset(0, 1).Value et maCellule.Offset(3, 0) = c.Offset(0, 1).Value.......etc

Donc voici ma question, est il possible d'incrémenter l'offset en réalisant une seconde boucle dans ma macro? Et aussi de dire à la macro qu il faut changer d'onglet?

Voici ma macro:
Sub partsdemarché()

Worksheets("Feuil2").Activate

Dim maCellule As Range 'noms de compagnies pétrolieres à rechercher


Application.Workbooks.Open chemin 'ouvre le fichier contenant les liasses bu'

name = ActiveWorkbook.name


For Each maCellule In Sheets("Feuil2").Range("D2:I2")
Set c = Sheets("Pays 1").Columns(2).Find(maCellule.Offset(0, 0).Value, _
LookIn:=xlValues, LookAt:=xlWhole)

If Not c Is Nothing Then
maCellule.Offset(1, 0) = c.Offset(0, 1).Value
End If


Next



End Sub

Voila, j'éspère avoir été compréhensible,
merci d'avance!
 
Re : Incrémenter l'Offset

Bonjour ker92, le forum,

Si tu repasses par ici, un essai en pièce jointe (si j'ai bien compris!?)
Je me suis permis de créer des pays dans "feuill2" ... les noms des pays sont utilisés dans les noms d'onglets.
Avant de tirer des plans sur la comète, voyons ce que tu dis du début ...
 

Pièces jointes

Re : Incrémenter l'Offset

OK super ca marche merci beaucoup! Oui c'est exactement ca qu'il me faut, bonne idée...
Maintenant j'aurai une deuxième question...est il possible que la macro cherche par exemple la valeur 'EXXON" et que si dans l'onglet du pays il y a écrit "EXXON France" ou "exxon mobil" ou autre chose avec "exxon...." il puisse trouver? Que l'on dise à la macro que à partir du moment ou il y a "le nom de la compagnie pétrolière" quelque part dans la cellule, il faut prendre la valeur de la cellule d'à coté?
Désolé pour le retard, ils me bloquent l'accès aux forums au boulot...donc peut etre à demain soir!
Et encore merci!
 
Re : Incrémenter l'Offset

Bonjour,

Il y a une solution assez simple: dans le "Find", demander que la recherche ne se fasse plus sur la "Totalité du contenu de la cellule", mais sur une partie. Il suffit, dès lors de remplacer LookAt:=xlWhole par LookAt:=xlPart, dans l'instruction suivante:
Code:
Set c = sh.Columns(2).Find(maCellule.Value, LookIn:=xlValues, LookAt:=xlPart)
La seule chose qu'il convient de faire est de s'assurer que tu ne risques pas d'encoder des termes comme "essorage", "sous-total" ou "utilisateur chevronné" dans la colonne B.
Ceci est donc le version simple ... si elle ne suffit pas, dis-le nous.
 
Re : Incrémenter l'Offset

Re bonjour Modeste.
En fait, après re-vérification il y a quelques erreurs...
La première, porte sur les compagnies à nom composé. Par exemple pour OIL Libya, si elle est indiqué comme Libyaoil ou oillibya...la macro ne la reconnait pas.
La deuxième erreur est que parfois les valeurs sont copiés deux fois. Par exemple pour GALP, il etait indiqué dans la fiche d'un pays GALP(Took over Shell activities). La macro a donc copié la valeur dans Shell et GAPCO...
Pour la première erreur j'imagine qu il y a une solution mais pour la seconde je pense que je devrais vérifier les parts de marché identiques pour un pays.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour