[COLOR=BLUE]Sub[/COLOR] Masquerlignesvide()
[COLOR=BLUE]Dim[/COLOR] cellule [COLOR=BLUE]As[/COLOR] Range
[COLOR=BLUE]Dim[/COLOR] Zone [COLOR=BLUE]As[/COLOR] Variant
[COLOR=GREEN] 'geler l'écran
Application.ScreenUpdating = False
'Définir zone (ici colonne A jusqu'à 1000)
Set Zone = Range("c30", Range("c1000").End(xlUp))
'on commence la boucle sur les Cellules de Zone
For Each cellule In Zone
'si cellule différente de 0 malgré formule alors masquer
If cellule.Value = "" Then cellule.EntireRow.Hidden = True
'on continue la boucle
Next cellule
'rétablir écran
Application.ScreenUpdating = True
End Sub[/COLOR]
Bonjour à tous, bonjour abtony,
Merci pour le retour .
Par contre, ne possédant pas de Mac, il sera difficile pour moi d'arranger ça...
a+
Pas de problèmesSi tu le permet je te demanderais surement des infos pour cela.
[COLOR=BLUE]Sub[/COLOR] Afficherlignesvide()
[COLOR=BLUE]Dim[/COLOR] cellule [COLOR=BLUE]As[/COLOR] Range
[COLOR=BLUE]Dim[/COLOR] Zone [COLOR=BLUE]As[/COLOR] Variant
'geler l'écran
Application.ScreenUpdating = False
'Définir zone (ici colonne A jusqu'à 1000)
[COLOR=BLUE]Set[/COLOR] Zone = Range("c30", Range("c1000").End(xlUp))
'on commence la boucle sur les Cellules de Zone
[COLOR=BLUE]For Each[/COLOR] cellule [COLOR=BLUE]In[/COLOR] Zone
'si cellule différente de 0 malgré formule alors masquer
[COLOR=BLUE]If[/COLOR] cellule.Value = "" [COLOR=BLUE]Then[/COLOR] cellule.EntireRow.Hidden = False
'on continue la boucle
[COLOR=BLUE]Next[/COLOR] cellule
'rétablir écran
Application.ScreenUpdating = True
End [COLOR=BLUE]Sub[/COLOR]
[COLOR=BLUE]Sub[/COLOR] Afficherlignesvide()
[COLOR=BLUE]Dim[/COLOR] cellule [COLOR=BLUE]As[/COLOR] Range
[COLOR=BLUE]Dim[/COLOR] Zone [COLOR=BLUE]As[/COLOR] Variant
[COLOR=GREEN]'geler l'écran
Application.ScreenUpdating = False
'Définir zone (ici colonne A jusqu'à 1000)
Set Zone = Range("c30", Range("c1000").End(xlUp))
'on commence la boucle sur les Cellules de Zone
For Each cellule In Zone
'si cellule différente de 0 malgré formule alors masquer
If cellule.Value = "" Then cellule.EntireRow.Hidden = False
'on continue la boucle
Next cellule
'rétablir écran
Application.ScreenUpdating = True
End Sub[/COLOR]
[COLOR=BLUE]Sub[/COLOR] Test()
[COLOR=BLUE]Dim[/COLOR] laChaine [COLOR=BLUE]As String[/COLOR], tabStr() [COLOR=BLUE]As String[/COLOR], i [COLOR=BLUE]As Long[/COLOR]
laChaine = "el1;el2;el3;el4;el5"
tabStr = Split(laChaine, ";")
[COLOR=BLUE]For[/COLOR] i = [COLOR=BLUE]LBound[/COLOR](tabStr) [COLOR=BLUE]To UBound[/COLOR](tabStr)
MsgBox tabStr(i)
[COLOR=BLUE]Next[/COLOR] i
[COLOR=BLUE]End Sub[/COLOR]
Bonjour abtony,
Apparemment, il ne reconnait pas la fin des lignes. Le traitement doit s'effectuer sur tout le code d'un coup, et non ligne par ligne.
Est-ce que la fonction Split marche sur ta version d'Excel ? Peux-tu tester ce code et dire si le fonctionnement est normal stp ?Code:[COLOR=BLUE]Sub[/COLOR] Test() [COLOR=BLUE]Dim[/COLOR] laChaine [COLOR=BLUE]As String[/COLOR], tabStr() [COLOR=BLUE]As String[/COLOR], i [COLOR=BLUE]As Long[/COLOR] laChaine = "el1;el2;el3;el4;el5" tabStr = Split(laChaine, ";") [COLOR=BLUE]For[/COLOR] i = [COLOR=BLUE]LBound[/COLOR](tabStr) [COLOR=BLUE]To UBound[/COLOR](tabStr) MsgBox tabStr(i) [COLOR=BLUE]Next[/COLOR] i [COLOR=BLUE]End Sub[/COLOR]
Merci d'avance et à bientôt
[COLOR=BLUE]Sub[/COLOR] Test()
[COLOR=BLUE]Dim[/COLOR] titi [COLOR=BLUE]As[/COLOR] DataObject, texte [COLOR=BLUE]As String[/COLOR], tabLignes() [COLOR=BLUE]As String[/COLOR], i [COLOR=BLUE]As Long[/COLOR]
[COLOR=GREEN]'récupérer dans la variable "texte" le texte copié dans le presse papier[/COLOR]
[COLOR=BLUE]Set[/COLOR] titi = [COLOR=BLUE]New[/COLOR] DataObject
titi.GetFromClipboard
texte = titi.GetText
[COLOR=GREEN]'afficher l'ensemble du texte[/COLOR]
MsgBox texte
[COLOR=GREEN]'éclater le texte à chaque fin de ligne[/COLOR]
tabLignes = Split(texte, vbNewLine)
[COLOR=GREEN]'boucler sur chaque ligne et les afficher une par une[/COLOR]
[COLOR=BLUE]For[/COLOR] i = [COLOR=BLUE]LBound[/COLOR](tabLignes) [COLOR=BLUE]To UBound[/COLOR](tabLignes)
MsgBox "Ligne " & i + 1 & " : " & tabLignes(i)
[COLOR=BLUE]Next[/COLOR] i
[COLOR=BLUE]End Sub[/COLOR]
[COLOR=BLUE]Sub[/COLOR] Macro() ;
Puis :
> Refaire la manip avec la macro [I]Macro2 [/I]et re-poster le résultat.[CODE][COLOR=BLUE]Sub[/COLOR] Macro()
[COLOR=BLUE]Dim[/COLOR] titi [COLOR=BLUE]As New[/COLOR] DataObject, test [COLOR=BLUE]As String[/COLOR]
titi.GetFromClipboard
test = titi.GetText
titi.SetText (Code(test))
titi.PutInClipboard
[COLOR=BLUE]End Sub[/COLOR]
[COLOR=BLUE]Sub[/COLOR] Macro2()
[COLOR=BLUE]Dim[/COLOR] titi [COLOR=BLUE]As New[/COLOR] DataObject, test [COLOR=BLUE]As String[/COLOR]
titi.GetFromClipboard
test = titi.GetText
titi.SetText (Code2(test))
titi.PutInClipboard
[COLOR=BLUE]End Sub[/COLOR]
[COLOR=BLUE]Private Function[/COLOR] Code(texte [COLOR=BLUE]As String[/COLOR]) [COLOR=BLUE]As String[/COLOR]
[COLOR=BLUE]Dim[/COLOR] iL [COLOR=BLUE]As Long[/COLOR]
[COLOR=BLUE]For[/COLOR] iL = 1 [COLOR=BLUE]To[/COLOR] Len(texte)
Code = Code & [COLOR=BLUE]CStr[/COLOR](Asc(Mid(texte, iL, 1))) & "-"
[COLOR=BLUE]Next[/COLOR] iL
[COLOR=BLUE]End Function[/COLOR]
[COLOR=BLUE]Private Function[/COLOR] Code2(texte [COLOR=BLUE]As String[/COLOR]) [COLOR=BLUE]As String[/COLOR]
[COLOR=BLUE]Dim[/COLOR] iL [COLOR=BLUE]As Long[/COLOR], iM [COLOR=BLUE]As Long[/COLOR], tabM() [COLOR=BLUE]As String[/COLOR]
tabM = Split(texte, " ")
[COLOR=BLUE]For[/COLOR] iM = [COLOR=BLUE]LBound[/COLOR](tabM) [COLOR=BLUE]To UBound[/COLOR](tabM)
Code2 = Code2 & "Mot " & Format(iM + 1, "00") & " : "
[COLOR=BLUE]For[/COLOR] iL = 1 [COLOR=BLUE]To[/COLOR] Len(tabM(iM))
Code2 = Code2 & [COLOR=BLUE]CStr[/COLOR](Asc(Mid(tabM(iM), iL, 1))) & "-"
[COLOR=BLUE]Next[/COLOR] iL
Code2 = Code2 & vbNewLine
[COLOR=BLUE]Next[/COLOR] iM
[COLOR=BLUE]End Function[/COLOR]
[COLOR=BLUE]Sub[/COLOR] test()
[COLOR=BLUE]Dim[/COLOR] tata [COLOR=BLUE]As String[/COLOR]
[COLOR=GREEN]'bla bla bla[/COLOR]
tata = "tata"
[COLOR=BLUE]End Sub[/COLOR]
83-117-98-32-116-101-115-116-40-41-13-68-105-109-32-116-97-116-97-32-65-115-32-83-116-114-105-110-103-13-32-32-32-32-39-98-108-97-32-98-108-97-32-98-108-97-13-32-32-32-32-116-97-116-97-32-61-32-34-116-97-116-97-34-13-69-110-100-32-83-117-98-0-0-
Mot 01 : 83-117-98-
Mot 02 : 116-101-115-116-40-41-13-68-105-109-
Mot 03 : 116-97-116-97-
Mot 04 : 65-115-
Mot 05 : 83-116-114-105-110-103-13-
Mot 06 :
Mot 07 :
Mot 08 :
Mot 09 : 39-98-108-97-
Mot 10 : 98-108-97-
Mot 11 : 98-108-97-13-
Mot 12 :
Mot 13 :
Mot 14 :
Mot 15 : 116-97-116-97-
Mot 16 : 61-
Mot 17 : 34-116-97-116-97-34-13-69-110-100-
Mot 18 : 83-117-98-0-0-
[COLOR=BLUE]Private Sub[/COLOR] TextBoxRechLib_Change()
Listbox1.Clear
N = 0
Recherche = TextBoxRechLib.Value
Ligne = Range("b" & "65536").End(xlUp).Row
Set Plage = Range("b" & "1:" & "b" & Ligne)
With Plage
Set C = .Find(Recherche)
If [COLOR=BLUE]Not[/COLOR] C [COLOR=BLUE]Is Nothing[/COLOR] Then
Adresse = C.Address
Do
[COLOR=BLUE]If[/COLOR] VBA.UCase(Recherche) = VBA.UCase(Left(C, VBA.Len(Recherche))) Then
Listbox1.AddItem C.Offset(0, 0), N
Listbox1.List(N, 1) = C
Listbox1.List(N, 0) = C.Offset(0, -1)
Listbox1.List(N, 2) = C.Offset(0, 1)
Listbox1.List(N, 3) = C.Offset(0, 2)
Listbox1.List(N, 4) = C.Offset(0, 3)
Listbox1.List(N, 5) = C.Offset(0, 4)
Listbox1.List(N, 6) = C.Offset(0, 5)
Listbox1.List(N, 7) = C.Offset(0, 6)
N = N + 1
[COLOR=BLUE]End[/COLOR] If
[COLOR=BLUE]Set[/COLOR] C = .FindNext(C)
[COLOR=BLUE]Loop While Not[/COLOR] C [COLOR=BLUE]Is Nothing And[/COLOR] C.Address <> Adresse
[COLOR=BLUE]End[/COLOR] If
End With
For x = 1 [COLOR=BLUE]To[/COLOR] 8
Controls("Textbox" & x) = ""
Next x
If TextBoxRechLib = "" [COLOR=BLUE]Then[/COLOR] Listbox1.List = t
End [COLOR=BLUE]Sub[/COLOR]
[COLOR=BLUE]Sub[/COLOR] Masquerlignesvide()
[COLOR=BLUE]Dim[/COLOR] cellule [COLOR=BLUE]As[/COLOR] Range
[COLOR=BLUE]Dim[/COLOR] Zone [COLOR=BLUE]As[/COLOR] Variant
[COLOR=GREEN]'geler l'écran
Application.ScreenUpdating = False
'Définir zone (ici colonne A jusqu'à 1000)
Set Zone = Range("c30", Range("c1000").End(xlUp))
'on commence la boucle sur les Cellules de Zone
For Each cellule In Zone
'si cellule différente de 0 malgré formule alors masquer
If cellule.Value = "" Then cellule.EntireRow.Hidden = True
'on continue la boucle
Next cellule
'rétablir écran
Application.ScreenUpdating = True
End Sub[/COLOR]