Macro excel mise en forme
Fermé
matbleu
-
22 nov. 2012 à 16:10
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 23 nov. 2012 à 14:03
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 23 nov. 2012 à 14:03
A voir également:
- Macro excel mise en forme
- Mise en forme conditionnelle excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Mise en forme tableau word - Guide
- Liste déroulante excel - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
2 réponses
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
23 nov. 2012 à 00:10
23 nov. 2012 à 00:10
1) Quand tu dit: comment lui dire de coller les données sur la dernière colonne vide...en utilisant une dimension? , tu veux dire "première colonne vide ? si oui, alors:
DernCol = (Cells(1, Cells.Columns.Count).End(xlToLeft).Column + 1)
2) exemple: tu te place sur la cellule qui va recevoir le total, ex, "AC28", et tu fait:
DernCol = (Cells(1, Cells.Columns.Count).End(xlToLeft).Column + 1)
2) exemple: tu te place sur la cellule qui va recevoir le total, ex, "AC28", et tu fait:
Range("AC28").Select ' rend la cellule "AC28" active ActiveCell.FormulaR1C1 = "=SUM(R[-23]C:R[-1]C)"
bonjour et merci de ton aide...voilà ou j'en suis :
With Sheets(4)
.Range("AC5:AC27").Value = WorksheetFunction.VLookup(.Range("B5:B27").Value, Sheets(11).Range("C3:I30"), 7, False)
End With
Sheets(4).Select
Range("AC28").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-23]C:R[-1]C)"
Cells.Replace What:="#N/A", Replacement:="0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Pour résumer, j'ai compris comment fonctionnait la fonction somme et j'ai trouvé comment remplacer mes #N/A par zéro mais je n'arrive toujours pas à adapter cette macro à mes variables, à savoir :
1) AC5:AC27 doit être remplacé par 1ère colonne vide à droite du tableau
2) AC28 se déplace également tous les mois d'une colonne...
merci d'avance pour ton coup de main
With Sheets(4)
.Range("AC5:AC27").Value = WorksheetFunction.VLookup(.Range("B5:B27").Value, Sheets(11).Range("C3:I30"), 7, False)
End With
Sheets(4).Select
Range("AC28").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-23]C:R[-1]C)"
Cells.Replace What:="#N/A", Replacement:="0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Pour résumer, j'ai compris comment fonctionnait la fonction somme et j'ai trouvé comment remplacer mes #N/A par zéro mais je n'arrive toujours pas à adapter cette macro à mes variables, à savoir :
1) AC5:AC27 doit être remplacé par 1ère colonne vide à droite du tableau
2) AC28 se déplace également tous les mois d'une colonne...
merci d'avance pour ton coup de main
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
23 nov. 2012 à 11:38
23 nov. 2012 à 11:38
D'abord, on parle en français, ce qui donne:
1) rechercher la dernière colonne non-vide,
2) une fois la valeur récupérée, lui ajouter 1 pour évaluer et écrire dans la première colonne vide,
3) comme tu as déjà le numéro de la colonne, tu fais la somme, et tu l'écris à la ligne 28 de cette colonne
Est-ce correct ? ou
1) rechercher la dernière colonne non-vide,
2) évaluer et écrire dans la première colonne vide,
3) comme tu as déjà le numéro de la colonne, tu fais la somme, et tu l'écris à la ligne 28 de cette colonne
La différence entre les 2 solutions, au cas où tu ne le percevrais pas, c'est que, dans la 1ère solution, tu viens écrire toutes les données ET faire la somme dans la première colonne vide, et,
dans la 2èmes solution, tu as déjà les données de la dernière colonne, mais tu veut uniquement faire la somme de XX5 à XX27 dans la cellule de XX28 ??
1) rechercher la dernière colonne non-vide,
2) une fois la valeur récupérée, lui ajouter 1 pour évaluer et écrire dans la première colonne vide,
3) comme tu as déjà le numéro de la colonne, tu fais la somme, et tu l'écris à la ligne 28 de cette colonne
Est-ce correct ? ou
1) rechercher la dernière colonne non-vide,
2) évaluer et écrire dans la première colonne vide,
3) comme tu as déjà le numéro de la colonne, tu fais la somme, et tu l'écris à la ligne 28 de cette colonne
La différence entre les 2 solutions, au cas où tu ne le percevrais pas, c'est que, dans la 1ère solution, tu viens écrire toutes les données ET faire la somme dans la première colonne vide, et,
dans la 2èmes solution, tu as déjà les données de la dernière colonne, mais tu veut uniquement faire la somme de XX5 à XX27 dans la cellule de XX28 ??
merci pour ta réponse rapide...
Je suis dans le 1er cas : ce qui donne:
1) rechercher la dernière colonne non-vide,
2) une fois la valeur récupérée, lui ajouter 1 pour évaluer et écrire dans la première colonne vide,
3) comme tu as déjà le numéro de la colonne, tu fais la somme, et tu l'écris à la ligne 28 de cette colonne
Je suis dans le 1er cas : ce qui donne:
1) rechercher la dernière colonne non-vide,
2) une fois la valeur récupérée, lui ajouter 1 pour évaluer et écrire dans la première colonne vide,
3) comme tu as déjà le numéro de la colonne, tu fais la somme, et tu l'écris à la ligne 28 de cette colonne
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
23 nov. 2012 à 14:03
23 nov. 2012 à 14:03
Rechercher dernière colonne non-vide, definir la colonne juste après (première colonne vide:
voilà
DernCol = (Cells(1, Cells.Columns.Count).End(xlToLeft).Column + 1)Ecrire dans les cellules via une boucle:
For i = 5 to 27 Cells(i, DernCol).Value = ValeurAEcrire Next iCalculer et écrire la somme dans la cellule de la ligne 28:
Range(Cells(28, DernCol), Cells(28, DernCol)).Select ActiveCell.FormulaR1C1 = "=SUM(R[-23]C:R[-1]C)"
voilà