Petit problème sur excel VBA
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un petit problème (de débutant que je suis) sur excel VBA.
Voici un code qui doit :
- Repérer en colonne 2 les valeurs égales à 1
- Copier le texte correspondant en colonne 1
- Créer une nouvelle colonne F en feuille 2 lorsque l'on a une valeur égale à 1 en colonne 2
- Coller le texte copié en F2 dans cette nouvelle colonne
Mais voilà, ça ne marche pas...
- Lorsque j'ai une valeur qui vaut 1, une nouvelle colonne est bien créée, ça c'est OK
- Mais lorsque j'en ai plusieurs, il ne me crée qu'une colonne pour autant
- De plus il ne colle pas de suite le texte copié (je pense que c'est parce que je lui demande de coller quelquechose dans une colonne que je suis en train de créer, mais comment faire ?)
Voilà le code :
Merci d'avance
J'ai un petit problème (de débutant que je suis) sur excel VBA.
Voici un code qui doit :
- Repérer en colonne 2 les valeurs égales à 1
- Copier le texte correspondant en colonne 1
- Créer une nouvelle colonne F en feuille 2 lorsque l'on a une valeur égale à 1 en colonne 2
- Coller le texte copié en F2 dans cette nouvelle colonne
Mais voilà, ça ne marche pas...
- Lorsque j'ai une valeur qui vaut 1, une nouvelle colonne est bien créée, ça c'est OK
- Mais lorsque j'en ai plusieurs, il ne me crée qu'une colonne pour autant
- De plus il ne colle pas de suite le texte copié (je pense que c'est parce que je lui demande de coller quelquechose dans une colonne que je suis en train de créer, mais comment faire ?)
Voilà le code :
Sub Phasesducycledevie_Bouton1_QuandClic()
Dim f As Integer
For f = 1 To 100
If Cells(f, 2).Value = 1 Then
Sheets("Tableau Final").Range("F2").EntireColumn.Insert Shift:=xlToLeft
Sheets("Phases du cycle de vie").Select
Cells(f, 1).Select
Selection.Copy
Sheets("Tableau final").Select
Range("F2").Select
ActiveSheet.Paste
End If
Next
End Sub
Merci d'avance
A voir également:
- Petit problème sur excel VBA
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier du plus petit au plus grand excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Si ou excel - Guide
2 réponses
Salut,
ton programme est presque bon. c'est juste que tu as seulement mis Next!
il faut mettre Next f.
juste comme "conseil" ou remarque en tout cas, si tu veux éviter d'avoir les animations lors de la macro, tu peux ajouter en début de prog Application.ScreenUpdating = False
j'y ai pensé en voyant toutes les animations et le "tremblement" que ça génère si tu a pas mal de 1!
enfin ça, c'est comme tu le sens ^^
ton programme est presque bon. c'est juste que tu as seulement mis Next!
il faut mettre Next f.
juste comme "conseil" ou remarque en tout cas, si tu veux éviter d'avoir les animations lors de la macro, tu peux ajouter en début de prog Application.ScreenUpdating = False
j'y ai pensé en voyant toutes les animations et le "tremblement" que ça génère si tu a pas mal de 1!
enfin ça, c'est comme tu le sens ^^
Bonjour,
Remplace ta ligne..
par
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Remplace ta ligne..
Sheets("Tableau Final").Range("F2").EntireColumn.Insert Shift:=xlToLeft
par
Sheets("Tableau Final").cells(1, f + 1).EntireColumn.Insert Shift:=xlToLeft
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
essaies cette proc
Sub ccm() Dim derlig As Byte, cptr As Byte, cptr_t As Byte Dim tablo ReDim tablo(0) derlig = Range("B250").End(xlUp).Row With Sheets("Phases du cycle de vie") For cptr = 1 To derlig If .Cells(cptr, 2) = 1 Then tablo(cptr_t) = .Cells(cptr, 1) cptr_t = cptr_t + 1 ReDim Preserve tablo(cptr_t) End If Next End With Sheets("Tableau Final").Range("F2").Resize(1, UBound(tablo) + 1) = tablo End Subremarque;
ton programme est presque bon. c'est juste que tu as seulement mis Next!
il faut mettre Next f.
MAIS NON, VOYONS!!!
désolé, je commence seulement en macro.
je voulais juste aider. désolé. pas besoin de me "crier" dessus, façon de parler (majuscules, gras!).
pourtant je l'ai essayé et il a très bien fonctionné le programme! je comprends pas alors!?