• Initiateur de la discussion Initiateur de la discussion Potentis
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Potentis

XLDnaute Occasionnel
Bonjour,
Sub CollSpec()
'
' Macro enregistrée le 21/06/2006 par Rv
'
' Collage special texte, Création de plan, puis Suppression des lignes vides
'
' Touche de raccourci du clavier: Ctrl+w
'
' Force cette macro dans la feuille "Feuille1" par exemple
' Sheets("Feuille1").Select

maligne = ActiveCell.Row
macolonne = ActiveCell.Column

' Collage special texte via IE
ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:=False

' Collage special texte via Windows
' Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
moncollage = ActiveWindow.RangeSelection.Address

SuppLignes

Range(moncollage).EntireRow.Offset(1, 0).Select
Selection.Rows.Group

End Sub
---------------------------------------------------------------------

Sub SuppLignes()
'
' SuppLignes Macro
' Macro enregistrée le 20/05/2006 par Rv
'
' Suppression des lignes vides
'
' Touche de raccourci du clavier: Ctrl+q
'
'désactive le rafraichissement de l'écran
Application.ScreenUpdating = False

m = 0
last_cell = Cells.SpecialCells(xlCellTypeLastCell).Row

For n = ActiveCell.Row To last_cell

If Range("B" & n) = "" Or Range("B" & n).Value = Chr(32) Then
Range("B" & n).Select
Selection.EntireRow.Delete Shift:=xlUp
n = n - 1
m = m + 1
If m = 10 Then Exit For
End If

Next

Application.ScreenUpdating = True

' on peut afficher une petite boite d'info
MsgBox (m & " cellule(s) vide(s) supprimée(s).")

End Sub

Voici les 2 macros de mon classeur et mes quelques questions


est que les 3 lignes suivantes sont vraiment utiles ? :
n = n - 1
m = m + 1
If m = 10 Then Exit For


au début je ne comprends pas ceci :
Collage special texte via IE (avec le code qui suit)

puis ceci
' Collage special texte via Windows (avec le code qui suit)


une fois que le plan se fait, je me retrouve avec un nombre de ligne vide a la fin de se plan, je suppose que c'est a cause de la macro SuppLignes() qui pointe sur la variable last_cell
le nombre de ligne vide supprimée dépends de ce que j'y colle et ca varie a chaque collage.
Comment je pourrais contourner ce défaut ???


je me suis créé un bouton dans ma barre, je ne sais plus comment j'ai fais pour le relier a une macro ET de plus cette macro n'existe plus
je souhaite relier ce bouton a CollSpec ()

Merci d'avance,
 
Re : modifier le code

Bonjour Papaye, Gorfael et le forum,

désolé pour ce retard, je testerai ce soir ce code

Papaye
Peux tu m'expliquer ce qu'est : Public first_cell, last_cell ?

Puis-je encore te solliciter ? pour créer une nouvelle petite macro que j'aurai bien aimé faire moi meme mais je ne sais pas trop comment.
Je voudrais faire un collage special Valeurs et Formats en meme temps
En essayant un enregistrement j'ai obtenu ceci :
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

je crois que je dois fusionner les ...xlPasteValues et xlPasteFormats mais comment !?

Gorfael
d'abord Merci
je vais potasser tout ce que tu m'expliques et je reviendrais te répondre un peu mieux

Bonne journée,
 
Re : modifier le code

Bonjour Papaye et le forum,

j'ai testé hier soir et ca semble bon sauf le plan car il se fait jusqu'a la ligne 1 en fait en mode pas a pas au retour de la macro SuppLignes la valeur de :
Rows(CStr(first_cell + 1) & ":" & CStr(new_last_cell)).Select
ne vaut plus sa valeur de départ

a+
 
Re : modifier le code

Bonjour Papaye, Gorfael, le forum,

pouvons nous reprendre ce fil ? suite a mon absence de quelques jours.

la derniere fois que j'ai testé le code, le plan se faisait jusqu'a la ligne 1 et non pas jusqu'a la 1ere ligne coller qui change a chaque collage.

dans une autre macro, j'aurai voulu faire un collage special Valeurs et Formats en meme temps, est ce que c'est possible ?


Gorfael,

voici comment est actuellement la macro SuppLignes ()
Sub SuppLignes()

Application.ScreenUpdating = False
Compteur = 0
first_cell = ActiveCell.Row
last_cell = Cells.SpecialCells(xlCellTypeLastCell).Row
For n = last_cell To first_cell Step -1
If Range("B" & n) = "" Or Range("B" & n).Value = Chr(32) Then
Range("B" & n).EntireRow.Delete Shift:=xlUp
Compteur = Compteur + 1
End If
Next n

Application.ScreenUpdating = True

'MsgBox (Compteur & " cellule(s) vide(s) supprimée(s).")

End Sub
donc est ce que je dois mettre comme tu me propose dans ta réponse du 17/08 Rows(n).Delete ???
 
Re : modifier le code

Bonjour le forum,
c'est juste pour dire qu'aprés avoir passé le WE sur mes macros, et en suivant les conseils de Papaye de Gorfael et de plusieurs posts du forum, que mes macros tournent impeccable.

ca me fait gagner un temps fou

Merci beuacoup
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
179
Réponses
10
Affichages
836
Réponses
7
Affichages
636
Réponses
2
Affichages
1 K
Retour