[Résol]Calc: dernière occurence d'uncaractère
antokomba
Messages postés
17
Statut
Membre
-
antokomba Messages postés 17 Statut Membre -
antokomba Messages postés 17 Statut Membre -
Bonjour,
J'aimerai automatiser la recherche de la dernière apparition d'un chiffre, et qu'il me donne en résultat le numéros de la dernière ligne ou le chiffre est apparu.(ou mieux: le numéro de la ligne -17 par exemple).
J'ai en gros quelques centaines de lignes, 8 colones, et une 60aine de chiffres possible différents.
Quelle est la formule la plus appropriée?
Pourriez vous me faire un exemplepour un chiffre?
Merci par avance,
Anto.
J'aimerai automatiser la recherche de la dernière apparition d'un chiffre, et qu'il me donne en résultat le numéros de la dernière ligne ou le chiffre est apparu.(ou mieux: le numéro de la ligne -17 par exemple).
J'ai en gros quelques centaines de lignes, 8 colones, et une 60aine de chiffres possible différents.
Quelle est la formule la plus appropriée?
Pourriez vous me faire un exemplepour un chiffre?
Merci par avance,
Anto.
A voir également:
- [Résol]Calc: dernière occurence d'uncaractère
- Calc philips de dos.exe - Télécharger - Divers Web & Internet
- Credit calc - Télécharger - Outils professionnels
- Activer le renvoi automatique à la ligne libreoffice calc ✓ - Forum LibreOffice / OpenOffice
- Libreoffice calc si cellule contient - Forum LibreOffice / OpenOffice
- Retour à la ligne sur Open Office ✓ - Forum LibreOffice / OpenOffice
12 réponses
bonjour,
sans vba je ne sais pas
avec vba un exemple ou le chiffre cherché est en K1 et le resultat en K2
bonne suite
sans vba je ne sais pas
avec vba un exemple ou le chiffre cherché est en K1 et le resultat en K2
Private Sub CommandButton1_Click()
Dim li As Long, derli As Long, ch As Long, co As Long, lich As Long
derli = Range("A65536").End(xlUp).Row
lich = 0
ch = Range("K1").Value
For li = 1 To derli
For co = 1 To 8
If Cells(li, co) = ch Then
lich = li
End If
Next co
Next li
Range("K2").Value = lich
End Sub
bonne suite
Si j'ai bien compris c'est une macro qu'il faut que j'utilise?
Tu peux me corriger pour la valeur 11 et le résultat dans la case V400 stp?
Private Sub CommandButton1_Click()
Dim li As Long, derli As Long, ch As Long, co As Long, lich As Long
derli = Range("A65536").End(xlUp).Row
lich = 0
ch = Range("A1:E900").11
For li = 1 To derli
For co = 1 To 8
If Cells(li, co) = ch Then
lich = li
End If
Next co
Next li
Range("v400").Value = lich
End Sub
Tu peux me corriger pour la valeur 11 et le résultat dans la case V400 stp?
Private Sub CommandButton1_Click()
Dim li As Long, derli As Long, ch As Long, co As Long, lich As Long
derli = Range("A65536").End(xlUp).Row
lich = 0
ch = Range("A1:E900").11
For li = 1 To derli
For co = 1 To 8
If Cells(li, co) = ch Then
lich = li
End If
Next co
Next li
Range("v400").Value = lich
End Sub
re
devrait aller
RQ. Cette macro est atachée a un bouton qu'il te faudra mettre sur la feuille ( a prendre dans la boite a outils controles), si tu ne sais pas faire, on peut simplifier la manoeuvre
bonne suite
Private Sub CommandButton1_Click()
Dim li As Long, derli As Long, ch As Long, co As Long, lich As Long
derli = Range("A65536").End(xlUp).Row
lich = 0
ch = 11
For li = 1 To derli
For co = 1 To 8
If Cells(li, co) = ch Then
lich = li
End If
Next co
Next li
Range("v400").Value = lich
End Sub
devrait aller
RQ. Cette macro est atachée a un bouton qu'il te faudra mettre sur la feuille ( a prendre dans la boite a outils controles), si tu ne sais pas faire, on peut simplifier la manoeuvre
bonne suite
Je ne sais pas comment on fait pour le boutton :s
J'ai essayé de l'exécuter tel quelle mais j'ai des erreur:
Quand je fait exécuter la macro, ça me met "Erreur de synthaxe BASIC, Private non autorisée dans une procédure"
Aussi j'ai un "Sub Main" dans l'endroit ou j'ai collé la macro, tout au début.
Quand je le supprime j'ai "Erreur d'exécution BASIC. Sous procédure ou procédure de fontion non définie."
J'ai essayé de l'exécuter tel quelle mais j'ai des erreur:
Quand je fait exécuter la macro, ça me met "Erreur de synthaxe BASIC, Private non autorisée dans une procédure"
Aussi j'ai un "Sub Main" dans l'endroit ou j'ai collé la macro, tout au début.
Quand je le supprime j'ai "Erreur d'exécution BASIC. Sous procédure ou procédure de fontion non définie."
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Aussi je viens de voir ce sujet :https://forum.openoffice.org/fr/forum/viewtopic.php?f=8&t=26929
Ils disent qu'il faut mettre "Option VBASupport 1" au début pour que les macro VBA marchent.
J'ai donc lancé ma macro avec ça, et ça me donne un 368 en V400, ou j'attendais un 19 (car le premier 11 est sur la ligne 19)
Ils disent qu'il faut mettre "Option VBASupport 1" au début pour que les macro VBA marchent.
J'ai donc lancé ma macro avec ça, et ça me donne un 368 en V400, ou j'attendais un 19 (car le premier 11 est sur la ligne 19)
re
désolé, je m'en doutais un peu
donc
Alt F11 pour acceder a l'editeur de macro (tu supprimes tout)
1.tu copies le code suivant (le nom de la procedure a changé)
2. Outils/Macros/
tu choisis derligne
Options
touche de raccourci ctrl+s (par exemple)
3. pour executer
Outils/macros/derligne/executer
ou
ctrl+s
si tu veux savoir comment on met un bouton et lui attacher un code, tu dis
bonne suite
désolé, je m'en doutais un peu
donc
Alt F11 pour acceder a l'editeur de macro (tu supprimes tout)
1.tu copies le code suivant (le nom de la procedure a changé)
Sub derligne()
Dim li As Long, derli As Long, ch As Long, co As Long, lich As Long
derli = Range("A65536").End(xlUp).Row
lich = 0
ch = 11
For li = 1 To derli
For co = 1 To 8
If Cells(li, co) = ch Then
lich = li
End If
Next co
Next li
Range("V400").Value = lich
End Sub
2. Outils/Macros/
tu choisis derligne
Options
touche de raccourci ctrl+s (par exemple)
3. pour executer
Outils/macros/derligne/executer
ou
ctrl+s
si tu veux savoir comment on met un bouton et lui attacher un code, tu dis
bonne suite
My bad, je viens de voir ton commentaire.
Je remplis les lignes par le haut dans ce fichier...la dernièer occurence sera donc en partant du haut. Vraiment désolé de t'avoir fait perdre du temps avec ça.
Je remplis les lignes par le haut dans ce fichier...la dernièer occurence sera donc en partant du haut. Vraiment désolé de t'avoir fait perdre du temps avec ça.
Bonsoir tout le monde,
Sinon c'est faisable par formule.
Avec le nombre recherché (11) en C1 :
ligne 1ère occurence :
=MIN(SI(($A$2:$A$400)=C1;LIGNE($A$2:$A$400);9^9))
ligne dernière occurence :
=MAX((($A$2:$A$400)=C1)*LIGNE($A$2:$A$400))
Les 2 formules sont matricielles et doivent être validées par shift+ctrl+entrée.
(elles s'entourent ensuite de { } )
eric
Sinon c'est faisable par formule.
Avec le nombre recherché (11) en C1 :
ligne 1ère occurence :
=MIN(SI(($A$2:$A$400)=C1;LIGNE($A$2:$A$400);9^9))
ligne dernière occurence :
=MAX((($A$2:$A$400)=C1)*LIGNE($A$2:$A$400))
Les 2 formules sont matricielles et doivent être validées par shift+ctrl+entrée.
(elles s'entourent ensuite de { } )
eric
@Eric,
Si je comprend bien, si je veux la première occurence du chiffre la première formule suffit?
Sinon j'ai l'impression que ça ne prend en compte que la première colonne.
Aussi quand je fait shift+ctrl+entrée après avoir collée la formule rien ne se passe ( pas de {} ) et j'ai une erreur.
Si je comprend bien, si je veux la première occurence du chiffre la première formule suffit?
Sinon j'ai l'impression que ça ne prend en compte que la première colonne.
Aussi quand je fait shift+ctrl+entrée après avoir collée la formule rien ne se passe ( pas de {} ) et j'ai une erreur.
Re,
j'ai l'impression que ça ne prend en compte que la première colonne.
oui, faite sur A2:A400
quand je fait shift+ctrl+entrée après avoir collée la formule rien ne se passe ( pas de {} ) et j'ai une erreur.
C'est que tu le fais mal... Il faut que le curseur soit dans la zone d'édition des formules en haut.
ex: Classeur1.xls
eric
j'ai l'impression que ça ne prend en compte que la première colonne.
oui, faite sur A2:A400
quand je fait shift+ctrl+entrée après avoir collée la formule rien ne se passe ( pas de {} ) et j'ai une erreur.
C'est que tu le fais mal... Il faut que le curseur soit dans la zone d'édition des formules en haut.
ex: Classeur1.xls
eric
re
@ eriiic
jolie formule comme d'habitude et une question, dans mon code y a t'il moyen de quitter les deux for en même temps?
@antokomba
pour ne pas rester sur une impression d'inachevé et si tu veux eviter une formule matricielle
bonne suite
@ eriiic
jolie formule comme d'habitude et une question, dans mon code y a t'il moyen de quitter les deux for en même temps?
@antokomba
pour ne pas rester sur une impression d'inachevé et si tu veux eviter une formule matricielle
<code>Sub Premli()
Dim li As Long, derli As Long, ch As Long, co As Long, lich As Long
Dim trouve As Boolean
derli = Range("A65536").End(xlUp).Row
lich = 0
ch = 11
trouve = False
For li = 1 To derli
For co = 1 To 8
If Cells(li, co) = ch Then
lich = li
trouve = True
Exit For
End If
Next co
If trouve Then
Exit For
End If
Next li
Range("V400").Value = lich
End Sub</code>
bonne suite
Salut ccm81,
y a t'il moyen de quitter les deux for en même temps?
La possibilité que tu as utilisée (tester un flag) est correcte, je procède presque tout le temps ainsi.
Tu pourrais aussi forcer 'li' à sa valeur max (et tant qu'à faire 'co' aussi, et 'trouve' devient inutile). Au next li tu quitteras la boucle. C'est plus court mais peut-être moins lisible.
eric
y a t'il moyen de quitter les deux for en même temps?
La possibilité que tu as utilisée (tester un flag) est correcte, je procède presque tout le temps ainsi.
Tu pourrais aussi forcer 'li' à sa valeur max (et tant qu'à faire 'co' aussi, et 'trouve' devient inutile). Au next li tu quitteras la boucle. C'est plus court mais peut-être moins lisible.
eric