[vba-excel] déclaration constante
Fermé
jeremac
-
12 juin 2008 à 14:26
onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 - 16 juin 2008 à 10:25
onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 - 16 juin 2008 à 10:25
Bonjour,
je voudrais situer et déclarer comme constante une cellule qui se trouve à l'avant dernière colonne de mon tableau , je ne peux pas le faire statiquement car le tableau peut être différent, je voudrais prendre toujours cette cellule qui sera placé toujours à l'avant dernière colonne, dois - je passer par une boucle qui testera si il existe encore des colonnes ou y a t-il une autre solution.
merci de votre aide
je voudrais situer et déclarer comme constante une cellule qui se trouve à l'avant dernière colonne de mon tableau , je ne peux pas le faire statiquement car le tableau peut être différent, je voudrais prendre toujours cette cellule qui sera placé toujours à l'avant dernière colonne, dois - je passer par une boucle qui testera si il existe encore des colonnes ou y a t-il une autre solution.
merci de votre aide
A voir également:
- [vba-excel] déclaration constante
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
3 réponses
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
12 juin 2008 à 14:41
12 juin 2008 à 14:41
Tu peux nommer ta cellule (Insertion, Nom, Définir)
Dans ta macro tu l'appelles en faisant
MaVariable = Range("CelluleNommee").value
Dans ta macro tu l'appelles en faisant
MaVariable = Range("CelluleNommee").value
aquarelle
Messages postés
7141
Date d'inscription
dimanche 8 avril 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
1 303
12 juin 2008 à 20:30
12 juin 2008 à 20:30
Bonsoir,
Peux-tu indiquer quelle est la ligne sur laquelle cette cellule se situe toujours ?
A+
Peux-tu indiquer quelle est la ligne sur laquelle cette cellule se situe toujours ?
A+
aquarelle
Messages postés
7141
Date d'inscription
dimanche 8 avril 2007
Statut
Modérateur
Dernière intervention
19 décembre 2024
1 303
12 juin 2008 à 20:55
12 juin 2008 à 20:55
Voici une macro à adapter, dans mon exemple, je considère que le tableau démarre à partir de la 1ère ligne de la colonne A et que la cellule variable se situe toujours sur la dernière ligne de ton tableau dans l'avant dernière colonne :
Bonne soirée
Sub SelectionCellVariable() Dim x As Long Dim y As Long x = Range("A1").End(xlToRight).Column y = Range("A1").End(xlDown).Row Cells(y, x).Offset(0, -1).Select End Sub
Bonne soirée
merci pour ta réponse mais j'avais essayé de faire une boucle pour trouver la colonne en question puis mettre la valeur dans une variable
mais ça ne marche pas trop
ça me dit "application defined or object defined error"
le debug souligne la ligne que j'ai mis en gras
merci de ton aide
Sub run()
Set wrksheet = ActiveWorkbook.Worksheets.Add
wrksheet.Name = "data"
Dim toto1 As Integer
Dim toto2 As Integer
Dim colonne_total As Integer
x = 1 'colonne
y = 8 'ligne
While ActiveWorkbook.Sheets("Pivot Solutions").Cells(x, y).Value <> "Grand Total"
x = x + 1
'on est dans la bonne colonne
Wend
colonne_total = x
toto1 = ActiveWorkbook.Worksheets("Pivot Solutions").Cells(colonne_total, 29).Value
'on utilise l'info de toto
toto2 = ActiveWorkbook.Worksheets("Pivot Solutions").Cells(colonne_total - 6, 29).Value
ActiveWorkbook.Sheets("data").Cells(colonne_total, 29).Value = "l'info qu'on veut ajouter dans la cellule en question"
End Sub
mais ça ne marche pas trop
ça me dit "application defined or object defined error"
le debug souligne la ligne que j'ai mis en gras
merci de ton aide
Sub run()
Set wrksheet = ActiveWorkbook.Worksheets.Add
wrksheet.Name = "data"
Dim toto1 As Integer
Dim toto2 As Integer
Dim colonne_total As Integer
x = 1 'colonne
y = 8 'ligne
While ActiveWorkbook.Sheets("Pivot Solutions").Cells(x, y).Value <> "Grand Total"
x = x + 1
'on est dans la bonne colonne
Wend
colonne_total = x
toto1 = ActiveWorkbook.Worksheets("Pivot Solutions").Cells(colonne_total, 29).Value
'on utilise l'info de toto
toto2 = ActiveWorkbook.Worksheets("Pivot Solutions").Cells(colonne_total - 6, 29).Value
ActiveWorkbook.Sheets("data").Cells(colonne_total, 29).Value = "l'info qu'on veut ajouter dans la cellule en question"
End Sub
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
>
jeremac
13 juin 2008 à 14:48
13 juin 2008 à 14:48
La syntaxe de Cells est Cells(Ligne, Colonne), vu que tu cherches une colonne tu dois incrémenter ton y et non ton x.
Dans la situation que tu donnes, tu incrémentes ton X (donc les lignes) et Excel ne parvient pas à trouver "Grand total" dans H1 (cellule de départ avec X=1 et Y=8), incrémente le X, ne le trouve pas en H2 .... jusqu'à arriver en H65536 et générer une erreur
Dans la situation que tu donnes, tu incrémentes ton X (donc les lignes) et Excel ne parvient pas à trouver "Grand total" dans H1 (cellule de départ avec X=1 et Y=8), incrémente le X, ne le trouve pas en H2 .... jusqu'à arriver en H65536 et générer une erreur
jeremac
>
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
13 juin 2008 à 16:38
13 juin 2008 à 16:38
Merci beaucoup pour ta réponse, en effet j'avais inversé ligne, colonne.
J'ai une dernière question , je voudrais rechercher à l'aide d'une boucle toutes les colonnes de la ligne 8 ou il y marqué à la fin TOTAL
puiis je faire un truc comme ça ?
While ActiveWorkbook.Sheets("Pivot Solutions").Cells(x, y).Value <> "### Total"
y = y + 1
'on est dans la bonne colonne
Wend
merci de votre aide
J'ai une dernière question , je voudrais rechercher à l'aide d'une boucle toutes les colonnes de la ligne 8 ou il y marqué à la fin TOTAL
puiis je faire un truc comme ça ?
While ActiveWorkbook.Sheets("Pivot Solutions").Cells(x, y).Value <> "### Total"
y = y + 1
'on est dans la bonne colonne
Wend
merci de votre aide
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
>
jeremac
13 juin 2008 à 16:50
13 juin 2008 à 16:50
Non, car :
- La boucle recherchera seulement ### Total, donc si dans une cellule de ta ligne tu as "Total Recall" ou "TOTAL, vous ne viendrez plus chez nous par hasard", ca ne sera pas pris en compte. De plus la comparaison est sensible à la casse, si tu as bien ### TOTAL dans une cellule, ca ne fonctionnera pas non plus car tu recherches ### Total
- La boucle s'arrêtera à la première occurence trouvée
Tu peux par contre essayer quelque chose dans ce genre :
- La boucle recherchera seulement ### Total, donc si dans une cellule de ta ligne tu as "Total Recall" ou "TOTAL, vous ne viendrez plus chez nous par hasard", ca ne sera pas pris en compte. De plus la comparaison est sensible à la casse, si tu as bien ### TOTAL dans une cellule, ca ne fonctionnera pas non plus car tu recherches ### Total
- La boucle s'arrêtera à la première occurence trouvée
Tu peux par contre essayer quelque chose dans ce genre :
For Each Cellule In Rows(8).Cells If InStr(UCase(Cellule.Value), "TOTAL") Then MsgBox "Total trouvé en " & Cellule.Address End If Next
jeremac
>
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
13 juin 2008 à 17:14
13 juin 2008 à 17:14
en fait j'ai oublié une contrainte
chaque chaque celulle est composé de MM/AAAA TOTAL
ex : 05/2008 TOTAL 06/2008 TOTAL 07/2008 TOTAL
10 20 30
quand il va parcourir le tableau comment lui faire stocker dans une variable la valeur de chacun de ces mois en les differenciant
encore merci de voter aide
chaque chaque celulle est composé de MM/AAAA TOTAL
ex : 05/2008 TOTAL 06/2008 TOTAL 07/2008 TOTAL
10 20 30
quand il va parcourir le tableau comment lui faire stocker dans une variable la valeur de chacun de ces mois en les differenciant
encore merci de voter aide
12 juin 2008 à 16:11
merci de ton aide
12 juin 2008 à 16:19
12 juin 2008 à 16:39
même si je rajoute des colonnes , je veux qu'il me prenne toujours cette celulle qui sera TOUJOURS SUR LA MEME LIGNE ET TOUJOURS SUR LAVANT DERNIERE COLONNE DU FICHIER
12 juin 2008 à 16:44
Quand tu entends Avant dernière Colonne du fichier, tu sous-entends de ton tableau excel ou bien la colonne IU ?
12 juin 2008 à 16:47