A voir également:
- Localisation plage inconnue, comment stocker
- Google maps localisation maison - Guide
- Localisation whatsapp - Guide
- Ma localisation - Guide
- Maps localisation gps - Guide
- Appeler en inconnue - Guide
8 réponses
Bonjour,
Si tu devais repérer cette plage en observant le tableau, comment t'y prendrais-tu, qu'est ce qui déterminerait le debut et la fin de cette plage? Il y a bien une valeur, un texte, une date ...
A+.
Si tu devais repérer cette plage en observant le tableau, comment t'y prendrais-tu, qu'est ce qui déterminerait le debut et la fin de cette plage? Il y a bien une valeur, un texte, une date ...
A+.
Bonjour,
Essaie cette macro
A+.
Essaie cette macro
Sub Macro1()
Dim DerniereLigne As Integer, PremiereLigne As Integer
Dim NombreLignes As Integer
Application.ScreenUpdating = False
'selection denière ligne
Selection.SpecialCells(xlCellTypeLastCell).Activate
DerniereLigne = ActiveCell.Row
'selection première ligne
For PremiereLigne = 1 To DerniereLigne
Range("A" & PremiereLigne).Select
Selection.End(xlToRight).Activate
If ActiveCell.Value <> "" Then Exit For
Next
Application.ScreenUpdating = True
NombreLignes = DerniereLigne - PremiereLigne + 1
If NombreLignes > 0 Then
MsgBox "Le tableau commence à la ligne " & PremiereLigne & _
" et finit à la ligne " & DerniereLigne & Chr(10) & _
"Nombre total de lignes : " & NombreLignes
Else
Range("A1").Select
MsgBox "Tableau vide"
End If
End Sub
A+.
Re,
Quel genre de données il y a dans ton tableau, parce chez moi j'ai essayé avec du texte et des nombre et ça marche bien.
Essaie cette macro pour voir si la dernière ligne est bien trouvée.
Quel genre de données il y a dans ton tableau, parce chez moi j'ai essayé avec du texte et des nombre et ça marche bien.
Essaie cette macro pour voir si la dernière ligne est bien trouvée.
Sub Macro2() Dim DerniereLigne As Integer 'selection denière ligne Selection.SpecialCells(xlCellTypeLastCell).Activate DerniereLigne = ActiveCell.Row Msgbox "Dernière ligne : " & DerniereLigne End Sub
Re,
Dans la macro initiale que j'avais posté, il y a un Bug si le tableau n'a qu'une seule ligne de données, la macro renvoie "Tableau vide".
Voici la macro corrigée
Dans la macro initiale que j'avais posté, il y a un Bug si le tableau n'a qu'une seule ligne de données, la macro renvoie "Tableau vide".
Voici la macro corrigée
Sub Macro1()
Dim DerniereLigne As Integer, PremiereLigne As Integer
Dim NombreLignes As Integer
Application.ScreenUpdating = False
'selection denière ligne
Selection.SpecialCells(xlCellTypeLastCell).Activate
DerniereLigne = ActiveCell.Row
'selection première ligne
For PremiereLigne = 1 To DerniereLigne
Range("A" & PremiereLigne).Select
Selection.End(xlToRight).Activate
If ActiveCell.Value <> "" Then Exit For
Next
If PremiereLigne > DerniereLigne Then PremiereLigne = DerniereLigne
Application.ScreenUpdating = True
NombreLignes = DerniereLigne - PremiereLigne + 1
If Not (ActiveCell.Value <> "") And NombreLignes = 1 Then NombreLignes = 0
If NombreLignes > 0 Then
MsgBox "Le tableau commence à la ligne " & PremiereLigne & _
" et finit à la ligne " & DerniereLigne & Chr(10) & _
"Nombre total de lignes : " & NombreLignes
Else
Range("A1").Select
MsgBox "Tableau vide"
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
On va en venir à bout, j'ai rajouté un test pour selectionner la première ligne du tableau et cette fois ce sera bon
A+
On va en venir à bout, j'ai rajouté un test pour selectionner la première ligne du tableau et cette fois ce sera bon
'selection première ligne
For PremiereLigne = 1 To DerniereLigne
Range("A" & PremiereLigne).Select
If ActiveCell.Value <> "" Then Exit For
Selection.End(xlToRight).Activate
If ActiveCell.Value <> "" Then Exit For
Next
A+
Re,
Cela marche lorsqu'on met 1 colon A2 à A6 par exemple, mais j'ai l'impression qu'il garde en mémoire ce résultat.pourtant j'ai initialisé.
cela ne marche pas quand on met une colonne de D1 à D8 par exemple.
je peux vous poser une autre question :
j'ai excel 2007 avec vista et, à chaque fois que j'ouvre EXCEL, une box montre "L'ouverture du projet VBA de ce fichier nécessite un composant qui n'est pas installé.Le fichier sera vert sans le projet VBA.
Pour plus d'information, recherchez "Convertisseurs VBA" sur Microsoft Office Online" . je ne sais quoi installée en plus.
merci pour votre réponse,
Cela marche lorsqu'on met 1 colon A2 à A6 par exemple, mais j'ai l'impression qu'il garde en mémoire ce résultat.pourtant j'ai initialisé.
cela ne marche pas quand on met une colonne de D1 à D8 par exemple.
je peux vous poser une autre question :
j'ai excel 2007 avec vista et, à chaque fois que j'ouvre EXCEL, une box montre "L'ouverture du projet VBA de ce fichier nécessite un composant qui n'est pas installé.Le fichier sera vert sans le projet VBA.
Pour plus d'information, recherchez "Convertisseurs VBA" sur Microsoft Office Online" . je ne sais quoi installée en plus.
merci pour votre réponse,
Bonjour,
Bon, encore un essai pour la macro.
Pour ta question sur la box qui s'affiche à l'ouverture d' Excel 2007, ça vient du fait que le classeur contient des macros au format Excel 95. Pour fonctionner avec Excel 2007, ces macros doivent etre converties au nouveau format. Malheureusement, ce convertisseur VBA n'est pas fournis avec office 2007, il doit être acheté et installé séparément.
https://support.microsoft.com/fr-fr/help/926430/you-are-requested-to-search-microsoft-office-online-for-vba-converters
Si c'est le cas pour toi, demande à quelqu'un qui à Excel 2000 ou 2003 d'enregistrer tes fichiers au format 2000 ou 2003, ensuite Excel 2007 les ouvrira sans problèmes.
A+.
Bon, encore un essai pour la macro.
Sub Macro1()
Dim DerniereLigne As Integer, PremiereLigne As Integer
Dim NombreLignes As Integer, LastRow As Integer, i As Integer
Application.ScreenUpdating = False
'selection denière ligne
Selection.SpecialCells(xlCellTypeLastCell).Activate
LastRow = ActiveCell.Row
'selection première ligne
For PremiereLigne = 1 To LastRow
Range("A" & PremiereLigne).Select
If ActiveCell.Value <> "" Then Exit For
Selection.End(xlToRight).Activate
If ActiveCell.Value <> "" Then Exit For
Next
If PremiereLigne > LastRow Then
Range("A1").Select
MsgBox "Tableau vide"
Application.ScreenUpdating = True
Exit Sub
End If
DerniereLigne = 1
For i = PremiereLigne To LastRow
Range("A" & i).Select
If ActiveCell.Value <> "" Then DerniereLigne = i
Selection.End(xlToRight).Activate
If ActiveCell.Value <> "" Then DerniereLigne = i
Next
NombreLignes = DerniereLigne - PremiereLigne + 1
Range("a1").Activate
Application.ScreenUpdating = True
MsgBox "Le tableau commence à la ligne " & PremiereLigne & _
" et finit à la ligne " & DerniereLigne & Chr(10) & _
"Nombre total de lignes : " & NombreLignes
End Sub
Pour ta question sur la box qui s'affiche à l'ouverture d' Excel 2007, ça vient du fait que le classeur contient des macros au format Excel 95. Pour fonctionner avec Excel 2007, ces macros doivent etre converties au nouveau format. Malheureusement, ce convertisseur VBA n'est pas fournis avec office 2007, il doit être acheté et installé séparément.
https://support.microsoft.com/fr-fr/help/926430/you-are-requested-to-search-microsoft-office-online-for-vba-converters
Si c'est le cas pour toi, demande à quelqu'un qui à Excel 2000 ou 2003 d'enregistrer tes fichiers au format 2000 ou 2003, ensuite Excel 2007 les ouvrira sans problèmes.
A+.
Re,
Super, Ca marche !!!
Bon, juste 1 derniere question, peux tu me dire ce que veut dire ces 2 lignes :
Application.ScreenUpdating = True
Selection.SpecialCells(xlCellTypeLastCell).Activate
merci
Super, Ca marche !!!
Bon, juste 1 derniere question, peux tu me dire ce que veut dire ces 2 lignes :
Application.ScreenUpdating = True
Selection.SpecialCells(xlCellTypeLastCell).Activate
merci
Re,
Application.ScreenUpdating = False
Cette instruction empèche le rafraichissement de l'écran, c'est pratique quand on cherche des cellules dans un tableau, l'affichage ne bouge pas dans tous les sens. Quand c'est fini on réactive l'affichage dynamique.
Application.ScreenUpdating = True
Selection.SpecialCells(xlCellTypeLastCell).Activate
Excel mémorise des cellules qui ont signification spéciale. Cette instruction active la dernière cellule non vide d'un tableau (xlCellTypeLastCell).
Enfin, elle devrait parce qu'en fait, ça ne marche pas toujours. Elle garde en mémoire la dernière cellule même si elle a été effacée, c'est pourquoi la macro ne marchait pas avant que je trouve le moyen de contourner le problème.
A+.
Application.ScreenUpdating = False
Cette instruction empèche le rafraichissement de l'écran, c'est pratique quand on cherche des cellules dans un tableau, l'affichage ne bouge pas dans tous les sens. Quand c'est fini on réactive l'affichage dynamique.
Application.ScreenUpdating = True
Selection.SpecialCells(xlCellTypeLastCell).Activate
Excel mémorise des cellules qui ont signification spéciale. Cette instruction active la dernière cellule non vide d'un tableau (xlCellTypeLastCell).
Enfin, elle devrait parce qu'en fait, ça ne marche pas toujours. Elle garde en mémoire la dernière cellule même si elle a été effacée, c'est pourquoi la macro ne marchait pas avant que je trouve le moyen de contourner le problème.
A+.
Ilfaut faire avec l'objet "selection".
La question est "donnez les instructions qui permettent de stocker dans une variable le nombre de lignes, sachant que la localistion de la "plage" de meme que ses dimensions ne sont pas connues.
à part fixer le "debutdeligne" avec une cellule, je ne sais pas faire.
merci