Bonjour à tous
Pratiquant le VBA depuis peut, Je sollicite votre aide pour la correction d’une macro pour Excel 2003
Voici ce que je désire effectuer :
J’ai des tableaux où j’importe des données avec des colonnes de chiffres dans ceux-ci les formats sont parfois en « Texte » or, pour additionner le tout, il me les faut tous au format « nombres »
Si je passe par « Collage spécial en multipliant par 1, ça fonctionne » mais je désire passer par une macro, et là, ça ne fonctionne qu’à moitié ???? (Même si j’enregistre la manip qui marche avec l’enregistreur de macro) je ne comprends pas pourquoi.
Auriez-vous une solution à me proposer pour faire fonctionner ma macro ?
Example avec la colonne K, si on additionne K19 et K20, le résultat est erroné : K20 n’est pas comptabilisé.
Code avec enregistreur :
Code fonctionnant à moitié (Même problèmes qu’avec le code enregistré, aux mêmes cellules
(K9, K17, K20, K30)
De plus, je désirerais que si une cellule de la colonne à convertir est vide, qu’après convertion, elle soit toujours vide (qu’il n’y ait pas « 0 »)
Question subsidiaire pour les pros d’Excel :
Je cherche un moyen de convertir une partie du texte (surlignée à la souris) d’une cellule, de minuscule à majuscule (ou l’inverse)
example : DISTRIBUTEUR NOGREN V62 - G3/8 5/3 CF 24VCC V62C611A-A313J
deviendrait : Distributeur norgren V62 G3/8 - 5/3 CF 24VCC V62C611A-A313J
Je n’ai rien trouvé sur le web : est-ce réalisable par macro ?
Merci beaucoup par avance.
Pratiquant le VBA depuis peut, Je sollicite votre aide pour la correction d’une macro pour Excel 2003
Voici ce que je désire effectuer :
J’ai des tableaux où j’importe des données avec des colonnes de chiffres dans ceux-ci les formats sont parfois en « Texte » or, pour additionner le tout, il me les faut tous au format « nombres »
Si je passe par « Collage spécial en multipliant par 1, ça fonctionne » mais je désire passer par une macro, et là, ça ne fonctionne qu’à moitié ???? (Même si j’enregistre la manip qui marche avec l’enregistreur de macro) je ne comprends pas pourquoi.
Auriez-vous une solution à me proposer pour faire fonctionner ma macro ?
Example avec la colonne K, si on additionne K19 et K20, le résultat est erroné : K20 n’est pas comptabilisé.
Code avec enregistreur :
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 10/01/2014
'
'
Range("B2").Select
Selection.Copy
Range("K2:K33").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Range("B2").Select
End Sub
Code fonctionnant à moitié (Même problèmes qu’avec le code enregistré, aux mêmes cellules
(K9, K17, K20, K30)
Code:
Option Explicit
Sub Multiplication_par_x()
Dim y As Integer 'Valeur de multiplication
Dim x As Range 'cellule temporaire pour variable de multiplication
Dim z As Range 'Selection à multiplier
Dim ongl As String 'Feuille
Dim col As String 'Colonne
Dim derli As Integer 'Dernière ligne de la colonne
On Error GoTo erreurfeuille
ongl = InputBox("Saisir le nom de la feuille de travail.", _
Title:="Onglet à traiter", Default:="1")
Sheets(ongl).Select
col = InputBox("Saisir la colonne à modifier.", _
Title:="Colonne à convertir", Default:="K")
derli = Cells(Rows.Count, col).End(xlUp).Row
Set z = Range(col & "2 :" & col & derli)
'Set z = Selection
z.NumberFormat = "0.00"
y = Application.InputBox("Entrer le chiffre multiplicateur:", _
Title:="Selection multiplier", Default:=1, Type:=1)
Set x = Range("A65536").End(xlUp).Offset(1)
If y = 0 Then Exit Sub
If x <> "" Then
'ajouter : si cellule vide : garder la cellule vide (pas 0)
'ajouter : effacement des caractères invisibles et remplacement des points par des virgules
Exit Sub
If y <> "" Then y = ""
Else: x.Value = y
x.Copy
z.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
x.ClearContents 'efface la cellule temporaire en fin de colonne A
Exit Sub
erreurfeuille:
MsgBox ("Ce nom n'existe pas !"), vbCritical
End Sub
De plus, je désirerais que si une cellule de la colonne à convertir est vide, qu’après convertion, elle soit toujours vide (qu’il n’y ait pas « 0 »)
Question subsidiaire pour les pros d’Excel :
Je cherche un moyen de convertir une partie du texte (surlignée à la souris) d’une cellule, de minuscule à majuscule (ou l’inverse)
example : DISTRIBUTEUR NOGREN V62 - G3/8 5/3 CF 24VCC V62C611A-A313J
deviendrait : Distributeur norgren V62 G3/8 - 5/3 CF 24VCC V62C611A-A313J
Je n’ai rien trouvé sur le web : est-ce réalisable par macro ?
Merci beaucoup par avance.
Pièces jointes
Dernière édition: