Problème macro VBA Excel
kocipia
Messages postés
17
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Voici en gros ce que doit définir ce bout de macro : Une question est posée si la réponse est 1 alors je copie la cellule U1. Entre les cellules C6 et C20000, je selectionne la première cellule vide.
strReponseQuestion = InputBox("Question ?", "Question", intNombreréponse)
If strReponseQuestion = 1 Then
Sheets("Synchro").Select
Range("U1").Select
Selection.Copy
Sheets("Synchro").Select
Dim Cellule As Range
For Each Cellule In ActiveSheet.Range("C5:C20000")
If Not Cellule Is Nothing Or Cellule.Value = "" Then
Cellule.Select
End If
Next Cellule
Le problème avec ce bout de macro, c'est au moment de sélectionner la derniere cellule vide.
If Not Cellule Is Nothing Or Cellule.Value = "" Then
Cellule.Select
End If
Next Cellule
Ce bout tourne en boucle et me place au final sur la cellule C20000 alors que les cellules C6 à C19999 sont vides. Je précise que je ne peut pas placer de "End" car ma macro doit continuer de tourner ensuite.
Merci par avance pour votre aide car ça fait une heure que je cherche à contourner ce problème.
Kocipia.
Voici en gros ce que doit définir ce bout de macro : Une question est posée si la réponse est 1 alors je copie la cellule U1. Entre les cellules C6 et C20000, je selectionne la première cellule vide.
strReponseQuestion = InputBox("Question ?", "Question", intNombreréponse)
If strReponseQuestion = 1 Then
Sheets("Synchro").Select
Range("U1").Select
Selection.Copy
Sheets("Synchro").Select
Dim Cellule As Range
For Each Cellule In ActiveSheet.Range("C5:C20000")
If Not Cellule Is Nothing Or Cellule.Value = "" Then
Cellule.Select
End If
Next Cellule
Le problème avec ce bout de macro, c'est au moment de sélectionner la derniere cellule vide.
If Not Cellule Is Nothing Or Cellule.Value = "" Then
Cellule.Select
End If
Next Cellule
Ce bout tourne en boucle et me place au final sur la cellule C20000 alors que les cellules C6 à C19999 sont vides. Je précise que je ne peut pas placer de "End" car ma macro doit continuer de tourner ensuite.
Merci par avance pour votre aide car ça fait une heure que je cherche à contourner ce problème.
Kocipia.
A voir également:
- Problème macro VBA Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
4 réponses
Trouvé ^^
je donne la réponse au cas ou si ça peut aider une autre personne :
Voici le bout de macro qui selectionne la derniere cellule vide. La première ligne montre le point de départ ici il s'agit donc de la cellule B6.
Range("b6").Select
Do While ActiveCell.Value > ""
ActiveCell.Offset(1, 0).Select
Loop
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
A +
Kocipia
je donne la réponse au cas ou si ça peut aider une autre personne :
Voici le bout de macro qui selectionne la derniere cellule vide. La première ligne montre le point de départ ici il s'agit donc de la cellule B6.
Range("b6").Select
Do While ActiveCell.Value > ""
ActiveCell.Offset(1, 0).Select
Loop
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
A +
Kocipia
Salut,
Le problème de ce genre de boucle avec select c'est que justement tu "stockes" beaucoup d'infos dans la mémoire de l'ordi qui au fil du temps et de l'utilisation de ta macro va finir par te dire "la mémoire ne peux être read"...
Tu peux remplacer ta boucle par le simple :
Sheets("synchro").Range("C20000").End(xlUp).Offset(1, 0).Select
Cordialement
Le problème de ce genre de boucle avec select c'est que justement tu "stockes" beaucoup d'infos dans la mémoire de l'ordi qui au fil du temps et de l'utilisation de ta macro va finir par te dire "la mémoire ne peux être read"...
Tu peux remplacer ta boucle par le simple :
Sheets("synchro").Range("C20000").End(xlUp).Offset(1, 0).Select
Cordialement
Salut pijaku,
Merci pour ta ligne je change de suite pour éviter mes 5.
Par contre, je viens de créer un fichier excel assez important, le souci c'est qu'il met 2 bonnes minutes à s'ouvrir et un peu moins à s'enregistrer. Il existe pas une méthode pour ce souci ?.
Merci encore
Kocipia
Merci pour ta ligne je change de suite pour éviter mes 5.
Par contre, je viens de créer un fichier excel assez important, le souci c'est qu'il met 2 bonnes minutes à s'ouvrir et un peu moins à s'enregistrer. Il existe pas une méthode pour ce souci ?.
Merci encore
Kocipia