Retourner coordonnées cellule vba
Résolu
Sam
-
Sam -
Sam -
Bonjour,
Je voudrais connaitre une commande vba pour retourner les coordonnées d'une cellule.
Sur mon tableur, j'ai une cellule contenant la valeur "pain", je voudrais obtenir ses coordonnées sans avoir à la sélectionner manuellement. Je voudrais qu'Excel la cherche lui-même et me fournisse ses coordonnées.
Merci d'avance
Je voudrais connaitre une commande vba pour retourner les coordonnées d'une cellule.
Sur mon tableur, j'ai une cellule contenant la valeur "pain", je voudrais obtenir ses coordonnées sans avoir à la sélectionner manuellement. Je voudrais qu'Excel la cherche lui-même et me fournisse ses coordonnées.
Merci d'avance
A voir également:
- Retourner coordonnées cellule vba
- Retourner ecran pc - Guide
- Coordonnées gps - Guide
- Comment retourner une video - Guide
- Excel compter cellule couleur sans vba - Guide
- Excel cellule couleur si condition texte - Guide
11 réponses
Bonsoir,
En supposant qu'elle est en colonnes B:D :
eric
En supposant qu'elle est en colonnes B:D :
Dim c As Range Set c = [B:D].Find("pain", LookIn:=xlValues) référence = c.Address lig = c.Row col = c.Column
eric
merci, autre question: comment est-ce que je peux sélectionner toutes les cellule entre "pain" et "viande" en suite à la procédure ci-dessus? (ça veut dire qu'au début je ne connais pas les coordonnées des 2 cellules, je sais juste qu'elles sont dans la même colonne)
Il y a encore un problème, si j'ai une cellule "pain perdue" avant la cellule "pain", la commande c-dessus me fournit les coordonnées de "pain perdue" car il est placé avant dans la colonne du tableur.
Comment parer cela?
Comment parer cela?
re,
vite fait avant le dodo alors :
eric
vite fait avant le dodo alors :
Dim c1 As Range, c2 As Range Set c1 = [B:B].Find("pain", LookIn:=xlValues, LookAt:=xlWhole) Set c2 = [B:B].Find("viande", LookIn:=xlValues, LookAt:=xlWhole) Range(c1, c2).Select
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok merci, par contre je voudrais que les cellules "pain" et "vande" ne soient pas inclus dans la sélection, comment faire?
De plus, je voudrais copier cette sélection dans une colonne d'un autre classeur, par exemple la colonne E à partir du rang E3.
Je patienterai jusqu'à demain pour les réponses, merci beaucoup en tout cas
De plus, je voudrais copier cette sélection dans une colonne d'un autre classeur, par exemple la colonne E à partir du rang E3.
Je patienterai jusqu'à demain pour les réponses, merci beaucoup en tout cas
Bonjour,
Pourquoi ne pas demander directement ce que tu veux ???
eric
Pourquoi ne pas demander directement ce que tu veux ???
Dim c1 As Range, c2 As Range Set c1 = [B:B].Find("pain", LookIn:=xlValues, LookAt:=xlWhole) Set c2 = [B:B].Find("viande", LookIn:=xlValues, LookAt:=xlWhole) Range(c1, c2).Offset(1, 0).Resize(c2.Row - c1.Row - 1, 1).Copy Destination:=Workbooks("Classeur2").Sheets("Feuil1").[E3]
eric
J'ai supposé que les chaines existaient toujours vu que tu ne précisais rien.
Ca marchait bien sur mon classeur de test, je ne sais pas ce que tu as fait...
"l'indice n'appartient pas à la sélection"
pareil, je ne suis pas devant ton écran, il faut être plus précis. Quelle ligne ????
Contrôles que les chaines existent bien (sans espace en trop par exemple)
eric
Ca marchait bien sur mon classeur de test, je ne sais pas ce que tu as fait...
"l'indice n'appartient pas à la sélection"
pareil, je ne suis pas devant ton écran, il faut être plus précis. Quelle ligne ????
Contrôles que les chaines existent bien (sans espace en trop par exemple)
eric
C'est bon j'ai réussi, une erreur d'espace.
Par contre, j'ai essayé d'automatiser le concept sur plusieurs feuilles et là ça ne marche pas comme je veux. Je voudrais extraire à chaque fois les cellules en questions (sachant que d'une feuille à l'autre il n'y a pas le même nombre de cellules entre "pain" et "viande"), et les mettre les unes à la suite des autres dans une colonne d'un autre classeur. Pour l'instant, ça ne met pas toutes les cellules et l'ordre est bizarre.
Voici mon code :
Set Wbk1 = ThisWorkbook
Set Wbk2 = Workbooks("classeur2.xls")
Dim c As Range
Dim d As Range
ws_count = ActiveWorkbook.Worksheets.Count
For I = 7 To ws_count
Wbk1.Worksheets(I).Activate
Set c = [B:B].Find("pain", LookIn:=xlValues, Lookat:=xlWhole)
Set d = [B:B].Find("viande", LookIn:=xlValues, Lookat:=xlWhole)
Wbk1.Worksheets(I).Range(c, d).Offset(2, 0).Resize(d.Row - c.Row - 3, 1).Copy Destination:=Workbooks("classeur2.xls").Sheets("Structure").Cells(3 + cells_count, 8)
cells_count = Wbk1.Worksheets(I).Range(c, d).Offset(2, 0).Resize(d.Row - c.Row - 3, 1).Count
Next I
Merci d'avance
PS: je ne sais pas si ça influe mais toute les cellules n'ont pas la même taille.
Par contre, j'ai essayé d'automatiser le concept sur plusieurs feuilles et là ça ne marche pas comme je veux. Je voudrais extraire à chaque fois les cellules en questions (sachant que d'une feuille à l'autre il n'y a pas le même nombre de cellules entre "pain" et "viande"), et les mettre les unes à la suite des autres dans une colonne d'un autre classeur. Pour l'instant, ça ne met pas toutes les cellules et l'ordre est bizarre.
Voici mon code :
Set Wbk1 = ThisWorkbook
Set Wbk2 = Workbooks("classeur2.xls")
Dim c As Range
Dim d As Range
ws_count = ActiveWorkbook.Worksheets.Count
For I = 7 To ws_count
Wbk1.Worksheets(I).Activate
Set c = [B:B].Find("pain", LookIn:=xlValues, Lookat:=xlWhole)
Set d = [B:B].Find("viande", LookIn:=xlValues, Lookat:=xlWhole)
Wbk1.Worksheets(I).Range(c, d).Offset(2, 0).Resize(d.Row - c.Row - 3, 1).Copy Destination:=Workbooks("classeur2.xls").Sheets("Structure").Cells(3 + cells_count, 8)
cells_count = Wbk1.Worksheets(I).Range(c, d).Offset(2, 0).Resize(d.Row - c.Row - 3, 1).Count
Next I
Merci d'avance
PS: je ne sais pas si ça influe mais toute les cellules n'ont pas la même taille.